wait()和sleep()方法都是用来控制多线程的有力工具,那么它们之间有什么巨大的区别呢?

1、wait()方法是属于Object类的,而sleep()方法是属于Thread类的。

2、最重要的一点:

当一个线程sleep()的时候,它会一直睡在那里不动,也没人去吵醒它,它会根据预先设定的睡眠时间,然后自己醒过来。但是它睡着的时候,如果手里有锁,那就一直抱着对资源的锁不松开,让其它线程也无法得到这个锁,是一种贪婪的做法!

当一个线程wait()的时候,(有一个前提,它必须拥有对资源的锁,否则也无所谓即没有资格wait()),它也会像sleep()那样睡过去,但是它的素质却高了,它睡着的时候会放开它手里对资源的锁,供其他线程去使用!!!与wait()方法相呼应的方法是Object类里的notify()方法,这个方法就是用来叫醒wait()在这个资源对象上的线程!!!

内容虽然很基础但是真的很重要,希望大家多多指正,共同进步!!!

最新文章

  1. Linux用户态和内核态
  2. 安天AVL联合小米MIUI首擒顽固病毒“不死鸟”
  3. Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板
  4. Python for Infomatics 第12章 网络编程五(译)
  5. angular 指令作用域 scope
  6. 安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具
  7. 【前端盲点】DOM事件流论证CSS盒模型是否具有厚度
  8. (三)在js(jquery)中获得文本框焦点和失去焦点的方法
  9. windows store app promise
  10. 小程序原理,生成SQL SERVER 2008 数据库所有表的结构文档
  11. Changing a Service's Configuration
  12. bzoj 1912 巡逻(树直径)
  13. 虚拟机安装windows7 VMware12 安装window7
  14. codeforces 1151 A
  15. 解决git 不同branch 下node_moudes不同步的问题
  16. css3中那些鲜为人知但又很有用的属性
  17. php基础知识考察点:正则表达式
  18. 第十次作业psp
  19. oracle 之 安装10.2.0.1 且 升级到 10.2.0.4
  20. js 对象数组删除和查找的方法

热门文章

  1. JavaWeb——Servlet开发1
  2. Tomcat源码分析 (六)----- Tomcat 启动过程(一)
  3. html5 placeholder属性兼容ie11
  4. 深入分析Java的编译期与运行期
  5. AutoResetEvent控制线程用法
  6. 二阶段js 入门知识点 自我总结复习
  7. SpringIoC和SpringMVC的快速入门
  8. Python Web Flask源码解读(一)——启动流程
  9. 设计模式(C#)——02抽象工厂模式
  10. Filter(过滤器)(有待补充)