黑马程序员技术交流社区

标题: 前几天我在论坛里问了一个问题,java多线程 sleep()和wait()的区别 [打印本页]

作者: 王小丑    时间: 2013-1-28 18:59
标题: 前几天我在论坛里问了一个问题,java多线程 sleep()和wait()的区别
经过查资料,找到了确切答案答案如下,分享给大家:
区别一:
sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个要报时的线程,每一秒中打印出一个时间,那么我就需要在print方法前面加上一个sleep让自己每隔一秒执行一次。就像个闹钟一样。
wait是Object类的方法,用来线程间的通信,这个方法会使当前拥有该对象锁的进程等待知道其他线程调用notify方法时再醒来,不过你也可以给他指定一个时间,自动醒来。这个方法主要是用走不同线程之间的调度的。
区别二 :
关于锁的释放 ,在这里假设大家已经知道了锁的概念及其意义。调用sleep方法不会释放锁(自己的感觉是sleep方法本来就是和锁没有关系的,因为他是一个线程用于管理自己的方法,不涉及线程通信)

区别三:
使用区域
由于wait函数的特殊意义,所以他是应该放在同步语句块中的,这样才有意义 。
注意:两个方法都需要抛出异常


作者: 王小丑    时间: 2013-1-29 18:10
悲剧 竟然没有人看 唉
作者: 李洪因    时间: 2013-1-29 19:35
我看啦!学习中。。。。。。。
作者: 铿锵科技    时间: 2013-1-30 13:06
我看学习了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2