对于wait和sleep貌似都会阻塞线程,但是它们确实是很大的区别的,所以下面一点点来探讨:

  • 区别一、Sleep()是线程里面的方法,而Wait()是Object类的方法。
    这个比较简单,直接看代码便知:

  • 区别二、sleep()方法不需要被notify唤醒,而wait()则需要【当然wait(10)这样的情况除外】。
    这个比较容易理解,就不多解释了。
  • sleep()使用时不需要使用syncronized加上同步锁,但是wait()需要。
    这个做一下实验就明白了:

    嗯~~调用sleep()时是不需要加同步块的,接下来再看wait():

    好接着解决这个异常:
  • sleep()时不会释放同步锁,但是wait()会释放。
    这个不太好理解,下面做实验验证一下:

    而当线程一sleep()结束之后,线程二就抢到锁了。

    好,接下来换成wait()再看结果:

    看见木有,等于两个线程同时执行了,也就是在线程一wait()期间,其锁就被释放可以被其它线程获得了。

最新文章

  1. FWT与High dick(划掉改成Dimensional) Fourier Transform
  2. The file “base.app” couldn’t be opened because you don’t have permission to view it.
  3. RubyMine不能调试Rails项目的问题
  4. Linux下安装和配置JDK与Tomcat(升级版)
  5. C#创建windows服务列表
  6. UVa 10300 - Ecological Premium
  7. 当IIS挂的网站出现选 图片文件, 静态文件都打不开时, 可以试试新建一个应用程序池试试看...
  8. Ajax异步请求XMLHttpRequest对象Get请求
  9. Qt在各平台上的搭建qt-everywhere
  10. mvc4中jquery-ui日期控件datepicker的应用
  11. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例
  12. MySQL 6.0安装图解
  13. Django的CBV和FBV
  14. ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL
  15. Spring学习(一):理解IoC容器
  16. window10:jdk 8下载和安装步骤
  17. HDFS集群常见报错汇总
  18. Spring系列(二):Spring IoC/DI的理解
  19. 2018.09.08 poj1185 炮兵阵地(状压dp)
  20. 使用DataTrigger来代替Triggerr

热门文章

  1. python 读取文件夹中所有同类型的文件 并用pandas合并
  2. web赛题2
  3. PYTHON 100days学习笔记007-2:python数据类型补充(2)
  4. VUE 1.0
  5. [转帖]关于Java中SQL语句的拼接规则
  6. Spring MVCD框架中调用HanLP分词的方法
  7. CENTOS 6-7的本地YUM源配置
  8. Navicat远程无法创建数据库
  9. 如何修改maven本地仓库位置
  10. C# 操作地址 从内存中读取写入数据(初级)