Java sleep与wait区别

31 阅读1分钟

(1)wait()需要配合synchronized使用,sleep()可以独立使用。

(2)wait()属于Object类,sleep()属于Thread类。

(3)sleep()具有主动唤醒功能,而不传递任何参数的wait()只能被其他线程的notify()或notifyAll()唤醒。

(4)wait()会主动释放锁,而sleep()不会。

(5)调用sleep()线程会进入TIMED_WAITING有时限等待状态,而调用无参数的wait()线程会进入WAITING无时限等待状态。