首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中的sleep,wite,notify,notifyAll的差别

2012-09-14 
Java中的sleep,wite,notify,notifyAll的区别sleep()wait()notify/notifyAll()的区别 1、sleep()是线程类的

Java中的sleep,wite,notify,notifyAll的区别
sleep()     wait()     notify/notifyAll()   的区别
1、sleep()是线程类的方法,sleep() 允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。说白了 ,也就是把机会给其他线程,但是监控状态依然保持。重要的一点就是 当调用sleep()方法是 不会 释放对象锁的。

2、 wait() notify/notifyAll()直接隶属于 Object 类,也就是说,所有对象都拥有这一对方法。

wait()方法表示,放弃当前对资源的占有权,进入阻塞状态,并且该对象上的锁被释放。一直等到有人通知才会继续执行后面的代码。

notify()方法表示,当前的线程已经放弃对资源的占有,通知等待的线程来获得对资源的占有权,但是只有一个线程能够从wait状态中恢复,然后继续运行wait()后面的语句;

notifyAll()方法表示,当前的线程已经放弃对资源的占有,通知所有的等待线程从wait()方法后的语句开始运行。

热点排行