原本以为notify 可以直接唤醒处于wait状态的线程 实则不然

package waitNotify;/** <p>*     Wait and notify in Java; low-level multithreading methods of the*  Object class that allow you to have one or more threads sleeping,*  only to be woken up by other threads at the right moment.*  Extremely useful for avoiding those processor-consuming polling loops.* </p>* * <p>* The full tutorial and the majority of the code is available at* https://www.udemy.com/java-multithreading/?dtcode=KmfAU1g20Sjj#/* </p>* * <p>* @author kanastasov L1087591@live.tees.ac.uk December-2014* </p>*/
import java.util.Scanner;public class Processor {public void produce() throws InterruptedException {synchronized (this) {System.out.println("Producer thread running ....");wait();System.out.println("Resumed.");}}public void consume() throws InterruptedException {Scanner scanner = new Scanner(System.in);Thread.sleep(2000);synchronized (this) {System.out.println("Waiting for return key.");scanner.nextLine();System.out.println("Return key pressed.");notify();Thread.sleep(5000); //notify后 produce线程不会马上苏醒 必须先执行沉睡命令 继而释放锁。 最终produce线程重新获取锁以后 才继续向下执行。}}
}

mygist copy from Carve ☺

https://github.com/lnas01/MultithreadingJava/blob/master/8_WaitAndNotify/src/waitNotify/Processor.java

转载于:https://www.cnblogs.com/lnas01/p/11240199.html

wait notify的错误理解相关推荐

  1. 计算机专业的会修电脑吗,常被错误理解的三大专业,计算机专业会修电脑,机械工程很是离谱...

    常被错误理解的三大专业,计算机专业会修电脑,机械工程很是离谱 在大学里有一些专业是经常被人误解,在生活中也是闹出了很多笑话,大学生对此也是很无奈,只能是和别人一遍又一遍去解释,你有没有遇到过类似的情况 ...

  2. 盘点好莱坞电影对人工智能的那些错误理解!

    最近好莱坞没有在拍摄漫画系列电影的时候,它在拍摄人工智能.为什么?因为人工智能给我们提供了一扇窗,让我们思考人类的意义所在,以及我们在这个世界上的位置. 这是一个哲学范畴的话题,而斯派克琼斯.史蒂文斯 ...

  3. ACM竞赛 错误理解,坏习惯,定势思维纠正——血泪史

    文章目录 关于二分答案的定势思维纠正 关于01背包的错误理解 关于vector和lower_bound的错误使用 关于二分答案的定势思维纠正 以前有风险的做法,二分后才记录答案 while(l< ...

  4. css实例 css中id/class 详解样式表(外部样式表 内部样式表 内联样式 7种基础选择器 多重样式优先级 错误理解)[第一天]

    文章目录 css实例 css中的id css中的class 样式表 外部样式表 内部样式表 内联样式 7种基础选择器 多重样式优先级 错误理解 css实例 CSS 规则由两个主要的部分构成:选择器,以 ...

  5. mysql回滚与错误提示_对mysql事务提交、回滚的错误理解 – jae – 博客园

    一.起因 begin或者START TRANSACTION开始一个事务 rollback事务回滚 commit 事务确认 人们对事务的解释如下:事务由作为一个单独单元的一个或多个 这句话本身没有什么问 ...

  6. tf.reshape的-1的错误理解

    一直以为reshape(-1,)会变成一维的,然后变成一个标量: import tensorflow as tf lenth = tf.reshape(30,shape=[-1]) lenth2 = ...

  7. sess.run的第一个参数的错误理解

    看图就能明白一切: 开始不明白为什么d2会返回为list类型:加入d1后,就明白了一切:dd运算完后返回是ndarray格式,但自己给dd穿了一件list外衣:所以就变成了列表类型: 自己就记住了li ...

  8. DC故障,在使用缓存登录的错误理解的解释

    在DC故障或者网络故障的情况下,我们的用户在已经登录过的机器上还是可以正常的登录的,这是现实,因为他使用的是缓存,关于这个缓存,我也一直认为<老师讲课的时候跟我想的一样>08里的概念是25 ...

  9. 常见英语缩写的正确含义与错误理解——经常更新

    目录 一.游戏模组MOD 二.速度公式v=s/t中的v.s.t 三.Linux下的/usr目录 四.在一些开源框架中,dist文件夹是什么意思 一.游戏模组MOD 百度百科 游戏模组 正确: MOD是 ...

最新文章

  1. PIG 中COGROUP中的空值验证
  2. 超过200m文件发送_喜大普奔!微信官宣:最高支持200M高清视频、图片文件!
  3. tpshop防止sql注入补丁
  4. React开发(136):ant design学习指南之form中动态form新增删除
  5. macOS卸载Java9及利用Homebrew搭建并配置Java开发环境
  6. linux命令格式与快捷键
  7. R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...
  8. torch.Tensor.scatter_(dim, index, src, reduce=None)
  9. idea添加自动编译
  10. linux下dhcp配置(二)
  11. [c++primer][05]表达式
  12. 计算机机房无尘,计算机机房建设标准
  13. 创作原创歌词的韵律十三辙与韵脚押韵方法
  14. 思科交换机的配置模式基本配置命令
  15. JaxWsProxyFactoryBean调用WebService实例
  16. 一篇非常 Nice 的 UmiJS 教程
  17. 《微电子概论》 PN结与二极管
  18. 升级Win10注意事项个人总结
  19. 计算机专业毕业生的就业政策,计算机专业毕业生就业情况分析及应对策略
  20. 同侪隐修录 (2016-12-25 23:10:21)转载▼

热门文章

  1. 注册表使用次数修改_如何使用系统注册表编辑器来优化电脑系统
  2. Reusability1
  3. Redis 数据库、键过期的实现
  4. angularJS之angular-datatable的方法
  5. redux 思考以及源码解析
  6. 《HTML5 开发实例大全》——1.26 使用鼠标光标拖动网页中的文字
  7. AngularJS 表格
  8. PowerShell与系统开局(下)
  9. How to set a timeout with AFNetworking
  10. Using dispatch_async