一、wait:

  1. wait 是 object 类的方法, sleep 是 thread 类的方法.

  2. 当前的正在我这个对象访问的线程 wait.

  3. 当前的这个线程, 锁定在当前对象的这个线程停止住.

  4. 只有锁定后, 才能有wait; 如果不是 synchronized, 直接调用 wait, 立马出错.

二、锁的问题:

  1. 原来不是拥有这个对象的锁吗? 一旦 wait ,立马就死了, 这个对象的锁就不再归我所有, 只有醒过来的时候, 我才会再找这把锁, 把它找回来.

三、wait 与 sleep 的区别:

  1. wait 的时候, 锁就不再给我所有.

  2. sleep 的时候, 睡着了也抱着那把锁, 它比较贪婪.

四、notify:

  1. this.notify 叫醒一个现在正在 wait 在我这个对象上的线程, 谁现在正在我的这个对象上等待, 我就叫醒一个线程, 让它继续执行.

五、wait 什么时候用:

  发生了一个阻塞事件, 已经满了, 这个时候我只能 wait, 而且我不知道我要 wait 多长时间. 所以就一睡不起, 什么时候我就醒了呢?

  当前对象有人调用了 notify(), 我就醒了, 我就继续执行. 但是, 你即使执行过来的时候, 哪怕你被打断了, 你也必须检查现在是不是

  还在阻塞状态, 若还是阻塞, 就继续睡. 睡醒的第一件事, 就是把其他的线程也叫醒, 然后再做自己的事(多线程同步).

最新文章

  1. entityframework使用oracle的几个小问题
  2. Unity3D音乐音效研究-MIDI与波表
  3. VirtualBox 内的 Ubuntu Server 虚拟机网络配置
  4. Swift学习--微博的基础框架搭建
  5. 二叉搜索树(Binary Search Tree)
  6. sql server 常用的系统存储过程
  7. JavaFX(四)窗口大小自由拉伸
  8. Java初转型-Tomcat安装和配置
  9. 前端开发面试题收集 css
  10. 通过游戏认识 --- JQuery与原生JS的差异
  11. python 进程间通信(上)
  12. 使用第三方jar时出现的问题
  13. Problem A: 重载字符的加减法
  14. Adjoint operators $T_K$ and $T_{K^{*}}$ in BEM
  15. 简化Getter 与 Setter 的插件 Lombok
  16. Http协议基础知识
  17. 如何解决Css属性text-overflow:ellipsis 不起作用(文本溢出显示省略号)
  18. Ubuntu忘记root密码的解决方法
  19. 1.6 Navigating This Book(本书导航)
  20. python 3 过滤股票

热门文章

  1. redis必会
  2. [转]windows下多个python版本共存,pip使用
  3. mysql主键重复,不抱错,只更新的骚操作 (如果没有插入,如果有更新)
  4. Delphi的FIFO实现
  5. linux介绍及基本命令
  6. 数据采集与分析的那些事——从数据埋点到AB测试
  7. Android接口与架构(驱动开发)翻译官方文档
  8. 20155229--Java实验四《Android开发基础》
  9. 20155317王新玮 2016-2017-2《Java程序设计》第2周学习总结
  10. URL特别字符处理