对象的notify方法的含义和对象锁释放的三种情况
2016-05-27 16:44
204 查看
1,notify的含义
(1)notify一次只随机通知一个线程进行唤醒
(2) 在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而呈wait状态所在的线程才可以获取该对象锁。
2,对象锁释放的三种情况
(1)notify一次只随机通知一个线程进行唤醒
(2) 在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而呈wait状态所在的线程才可以获取该对象锁。
2,对象锁释放的三种情况
序号 | 场景 |
1 | 执行完同步代码块就会释放对象的锁 |
2 | 在执行同步代码块的过程中,遇到异常而导致线程终止,锁也会被释放 |
3 | 在执行同步代码块的过程中,执行了锁所属对象的wait方法,这个线程会释放对象锁,而此线程对象会进入线程等待池中,等待被唤醒 |
相关文章推荐
- Android签名详解(debug和release)
- Python【7】-数据分析准备
- 通过多播实现局域网上线用户列表 c++实现
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 设计模式总结
- 自行编写strcpy()函数和memcpy()函数
- registrator支持的环境变量
- rsync+inotify实现数据同步
- springMVC (十) RequestMappingHandlerMapping
- 一、OOP概念
- 15. Spark Streaming源码解读之No Receivers彻底思考
- Matlab:一个简单例子了解ndgrid函数
- 笔记5 定义函数
- httpModules 与 httpHandlers
- 后台程序员的HTTP缓存
- Java基础-transient关键字
- 三种缓存方式的详解
- iOS8新特性扩展(Extension)应用之四——自定义键盘控件
- Java环境搭建
- 包的安装