Java多线程系列(6)
来源:互联网 发布:gbgb888域名永久获取 编辑:程序博客网 时间:2024/04/30 01:25
Wait & Notify
WN是一种同步机制,更是一种通信机制,它必须与 同步锁结合使用。因为Wait-Notify本身存在race condition。
但是这不得不让我们思考WN机制得必要性:1)wait()与sleep()在对待已获取得lock时不同,前者会在操作之前自动放弃lock;2)wait在于等待某事物得出现,等待条件没有满足当然可以等待
没有同步得WN可能得导致RC,举例如下:
1)Thread1测试条件,不满足,需要等待;
2)Thread2设定此条件
3)Thread2调用notify()
4)Thread1调用wait()等待
其结果是Thread1永远等待
另外:wait()和nitify()方法应与Lock对象保持一致。
举例:
wait():
synchronized (object){
if (flag){
object.wait()
}
else{
...
}
}
notify():
synchronized (object){
if (!flag){
object.notify();
}
else{
...
}
}
- Java多线程系列(6)
- Java多线程系列6(Lock)
- Java多线程系列(6)--interrupt()
- Java多线程系列(1)
- Java多线程系列(2)
- Java多线程系列(3)
- Java多线程系列(4)
- Java多线程系列(5)
- Java多线程系列(7)
- 【Java系列】(三)Java多线程---基础
- Java多线程干货系列—(一)Java多线程基础
- Java多线程干货系列(1):Java多线程基础
- Java系列(十四)__多线程
- java多线程系列----------- 终结任务(一)
- java多线程系列----------- 终结任务(二)
- Java系列(十四)__多线程
- Java多线程系列(7)--join()理解
- Java多线程系列1(线程基本常识)
- mysql连接和断开
- StringBuffer帮你减轻Java的负担
- ttt
- 十大Web 2.0攻击向量
- MSN之踏雪无痕
- Java多线程系列(6)
- 每个编辑单元只能有一个public class
- CSDN专家分与成就感
- 。Windows 键盘快捷键
- 耳朵出问题了
- 耳朵的问题大了
- 明天不知会怎么呀
- 。Windows系统进程表 超全
- 我的耳朵彻底好了!^_^