博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程中wait和sleep方法的区别
阅读量:6343 次
发布时间:2019-06-22

本文共 421 字,大约阅读时间需要 1 分钟。

  • wait是Object的方法,而sleep是Thread的方法。
  • sleep方法不会释放锁,可以定义时间,时间过后会自动唤醒。wait方法会释放锁。 sleep不会释放资源,wait进入线程等待池等待,出让系统资源,其它线程可以占用CPU。一般wait不会加时间限制,这是因为如果wait线程运行的资源不够,再出来也没用,要等待其它线程调用notifynotifyAll唤醒等待池中所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒,如果时间不到,只能用interrupt()强行打断。
  • waitnotifynotifyAll只能在同步控制方法或同步控制块中使用,而sleep可以任何地方使用。
  • sleep必须捕获异常,waitnotifynotifyAll则不用。

转载于:https://juejin.im/post/5b8566ed518825430774239e

你可能感兴趣的文章
一次很失败的抄底
查看>>
数据结构C++(10)二叉树——链表实现(linkBinaryTree)
查看>>
利用Condition实现多线程交替执行
查看>>
里氏替换原则(设计模式原则2)
查看>>
lamp一键安装
查看>>
解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题
查看>>
OpenCV——Haar-like特征
查看>>
HttpWebResponse发送post请求并接收
查看>>
python 相对路径和绝对路径的区别
查看>>
Day36 python基础--并发编程基础5
查看>>
《Python从小白到大牛》第6章 数据类型
查看>>
三层架构的是与非
查看>>
lucene bug的报告经历
查看>>
火狐访问HTTPS网站显示连接不安全的解决方法
查看>>
防火墙(一)主机型防火墙
查看>>
基于哈夫曼编码的压缩算法的实现
查看>>
sed tr
查看>>
FTP文件传输服务器(详解)
查看>>
ERROR OGG-01172 Discard file (/oradata/gglog/repl.dsc) exceeded max bytes (500000000).
查看>>
Activiti 实战篇 小试牛刀
查看>>