A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 等你的季节-夏天 中级黑马   /  2015-7-6 10:56  /  830 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • sleep和wait的区别主要有
  • 1.sleep是Object类的方法, wait是Thread类的方法
  • 2.sleep必须指定休眠时间, 他有时间限制, wait则没有时间限制, 他必须靠notify或者notifyAll唤醒
  • 3.最重要的一点, sleep的时候, 线程不会释放锁, 而wait的线程会释放锁
  • 多线程中有一个死锁问题, 死锁是指同步中嵌套有同步, 每个同步都有单独的一个同步锁, 好比两层门, 有两把锁. 代码中就是两层同步代码块, 外层使用A锁, 内层使用B锁, 另一条路径是外层使用B锁, 内层使用A锁, 两条线程, 一个持有A锁想进B锁的同步代码块, 另一个持有B锁想进A锁的同步代码块, 两条线程都不释放锁, 又都不能运行下一步, 所以形成一种假死状态. 解决方法就是不要在同步中嵌套同步, 同步只使用唯一的一个锁.

5 个回复

倒序浏览
自己可以写一遍等待唤醒机制。会更加深入{:3_68:}
回复 使用道具 举报
sleep也是Thread类的方法。
回复 使用道具 举报
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
回复 使用道具 举报
赞赞赞赞赞赞
回复 使用道具 举报
赞赞赞赞赞赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马