JAVA -- 线程wait()和sleep()的区别
2015-05-31 16:43
423 查看
wait()属于Object类中,sleep()属于Thread类中。
sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备。
获取对象锁进入运行状态。//signal.wait()的意思并不是说,signal开始wait,而是说,运行这段代码的当前线程开始wait这个signal对象,即进入signal对象的待召(Waiting)队列。
;
sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备。
获取对象锁进入运行状态。//signal.wait()的意思并不是说,signal开始wait,而是说,运行这段代码的当前线程开始wait这个signal对象,即进入signal对象的待召(Waiting)队列。
;
相关文章推荐
- 跟我学Java反射——三步曲
- eclipse.ini内存设置
- Eclipse豆沙绿详细设置
- Struts2中请求参数校验
- java.lang.NullPointerException错误及其处理方式
- JAVA编程思想学习总结:第十三章字符串
- java 打包 编译
- JAVA 单例设计模式
- 疯狂Java学习笔记(63)-----------线程进阶
- Hadoop学习笔记(六)---HDFS java接口
- java中的“委托”
- 【java web】--html、xml竞争还是合作?
- java动态代理和静态代理
- java多线程(三)、线程的生命周期(状态)和线程的操作
- Java内部类
- Java基础之集合框架详解(二)List篇
- JAVA设计模式--Strategy
- JAVA 对象初始化的过程
- Java Log 系统介绍以及切换
- Java中的反射及Bean容器的实现