java基础 sleep与wait的区别

(1)wait()方法属于Object类,sleep()属于Thread类。

(2)sleep()方法导致了线程暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态,在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备。

(3)sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。

(4)wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。

猜你喜欢

转载自blog.csdn.net/guanmao4322/article/details/84258119