黑马程序员技术交流社区
标题:
关于sleep和wait
[打印本页]
作者:
陶圣虎
时间:
2014-8-7 16:26
标题:
关于sleep和wait
本帖最后由 陶圣虎 于 2014-8-7 21:01 编辑
synchronized(obj)
{
if(ticket>0)
{
try
{
Thread.sleep(10);
}
catch (Exception e)
{
}
System.out.println(Thread.currentThread().getName()+"ticket="+ ticket--);
}
}
synchronized(r)
{
if(!r.b)
try{r.wait();}catch(Exception e){}
System.out.println(r.name+"-----"+r.sex);
r.b = false;
r.notify();
}
复制代码
为什么上面的锁住了,线程sleep了其他线程不可以进.
下面的锁住了,线程wait,其余的线程可以进。
sleep和wait不都是使线程进入到冻结状态吗?
作者:
rolling-stone
时间:
2014-8-7 16:38
sleep和wait的区别就是,一个醒来不释放锁,一个醒来释放锁。你那个wait醒来把锁也会释放掉。
作者:
戒风
时间:
2014-8-7 17:42
sleep不释放锁,wait释放锁
作者:
felixzr
时间:
2014-8-7 18:31
楼上已经说出了原因,这就是Sleep和Wait的区别
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2