黑马程序员技术交流社区

标题: 没法删除没法删除没法删除没法删除没法删除 [打印本页]

作者: 科篮    时间: 2014-7-18 23:51
标题: 没法删除没法删除没法删除没法删除没法删除
本帖最后由 科篮 于 2014-9-21 22:44 编辑

没法删除没法删除没法删除没法删除没法删除
作者: zeus00456    时间: 2014-7-19 13:34
sleep()不释放锁
wait()释放锁
这是最本质的区别了

肤浅的说法是:
睡眠了之后,睡眠的线程还霸占着cpu,它威胁cpu“你丫必须等爷睡醒了,服侍完爷再去服侍别的!”然后此线程睡眠,睡醒后它执行完,才会释放锁,才能轮到其他线程执行
等待则比较有素质,不占用cpu,它会告诉cpu“你先忙活其它的去,让我歇一会”,然后它释放锁,解放cpu,让其它线程执行
作者: 吴杰栋    时间: 2014-7-19 19:27
  Wait:释放执行权,释放锁
  Sleep:释放执行权,不释放锁.它不需要被人叫醒
Wait和notify一般是配合使用的,有一个Demo类中有show和method两方法,这两方法中都有同步代码块,使用的是同一个锁,T0,T1和T2在show的同步代码块中等待,当T4在method的同步代码块中唤醒所有notifyAll的线程的时候,这个时候T0,T1,T3他们都会具有cpu的执行资格,但是只有当T4执行完它的代码后,走出同步代码块后,T4释放了锁,这个时候0,1,2会只有一个随即拿到锁,这个时候拿到锁的哥们就同时具有cpu的执行资格和执行权,然后它就能进入同步代码块工作了.

作者: sugar    时间: 2014-7-21 08:59
sleep(100)到时间了,线程自动活;

wait()用notify唤醒
作者: 八零、玖羚    时间: 2014-7-21 09:04
楼上的几位说的很仔细啊
作者: 王石    时间: 2014-7-21 09:05
sleep()不释放锁
wait()释放锁





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