Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa sleep() và wait() trong Java

Trong bài viết này, chúng ta sẽ tìm hiểu sự khác biệt giữa phương thức sleep() và wait() trong Java.

wait()

  • Thuộc class Object
  • Giải phóng lock (monitor) khi đang synchronized
  • KHÔNG phải static method
  • Chỉ được gọi từ ngữ cảnh synchronized (synchronized block/method)
  • Có 3 overload: wait(), wait(long timeout), wait(long timeout, int nanoseconds)

sleep()

  • Thuộc class Thread
  • KHÔNG giải phóng lock khi đang synchronized
  • LÀ static method
  • Từ ngữ cảnh synchronized, KHÔNG cần gọi sleep()
  • Có 2 overload: sleep(long millis), sleep(long millis, int nanos)