sleep和wait区别_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > sleep和wait区别

sleep和wait区别

 2014/11/14 3:45:54  jinjzk  程序员俱乐部  我要评论(0)
  • 摘要:sleep和wait都是使线程暂时停止执行的方法,但它们有很大的不同,sleep是线程类Thread的方法,它是使当前线程暂时睡眠,可以放在任何位置。而wait是Object类的方法,它是使当前线程暂时放弃对象的使用权进行等待,必须放在同步方法或同步块里。Sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。而wait是会释放对象锁的,就是当前线程放弃对象的使用权,让其他的线程可以访问
  • 标签:区别
sleep和wait都是使线程暂时停止执行的方法
,但它们有很大的不同,sleep是线程类Thread 的方法,
它是使当前线程暂时睡眠,可以放在任何位置。
而wait是Object类的方法,它是使当前线程暂时放弃对象的使用权进行等待,
必须放在同步方法或同步块里。
Sleep使用的时候,线程并不会放弃对象的使用权,即不会释放对象锁,所以在同步方法或同步块中使用sleep,一个线程访问时,其他的线程也是无法访问的。
而wait是会释放对象锁的,就是当前线程放弃对象的使用权,让其他的线程可以访问。
线程执行wait方法时,需要另一个线程调用notify进行唤醒。
而sleep只是暂时休眠一定时间,时间到了之后,自动恢复运行,不需另外的线程唤醒。
上一篇: jvm内存模型 下一篇: Java面试题(基础)
发表评论
用户名: 匿名