notify通知遗漏问题
2015-07-04 10:53
260 查看
notify通知的遗漏,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块后,threadA再开始wait,便会一直阻塞等待,直到被别的线程打断。
在使用线程的等待/通知机制时,一般都要在while循环中调用wait()方法,满足条件时,才让while循环退出,这样一般也要配合使用一个boolean变量(或其他能判断真假的条件),在notify之前改变该boolean变量的值,让wait返回后能够退出while循环(一般都要在wait方法外围加一层while循环,以防止早期通知),或在通知被遗漏后,不会被阻塞在wait方法处。这样便保证了程序的正确性。
在使用线程的等待/通知机制时,一般都要在while循环中调用wait()方法,满足条件时,才让while循环退出,这样一般也要配合使用一个boolean变量(或其他能判断真假的条件),在notify之前改变该boolean变量的值,让wait返回后能够退出while循环(一般都要在wait方法外围加一层while循环,以防止早期通知),或在通知被遗漏后,不会被阻塞在wait方法处。这样便保证了程序的正确性。
相关文章推荐
- java基础------存取大文件数据
- HBuilder开发App教程03-定制图标,启动页以及打包
- LeetCode Symmetric Tree
- [LeetCode]Search for a Range
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- GCO3.0的图割分割算法应用(三)
- 网络图片加载
- 我的学习计划---第一部分数据结构与算法
- Android基于发展Service音乐播放器
- 访问控制
- 带你认识LabVIEW和MATLAB
- 把你的代码卸载到GPU(用GPU编程):如何开始
- error C2065: “list”: 未声明的标识符
- 文章标题
- C语言 常用函数
- 机器人视觉技术的关键所在
- Factory Pattern 工厂模式
- 查找同构数的数量
- java深入解析-第1章 基本概念2
- 音乐播放