对象的notify方法的含义和对象锁释放的三种情况
2017-10-21 14:12
267 查看
1、notify()方法的含义:
(1)notify()方法是随机唤醒一个线程,将等待队列中的一个等待线程从等待队列中移到同步队列中。
(2)在执行完notify()方法后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而在同步队列中的该线程才可以获取该对象锁。
2、对象所释放的三个场景:
(1)执行完同步代码块就会释放对象锁;
(2)在执行代码块的过程中,遇到异常而导致线程终止,也会释放对象锁;
(3)在执行同步代码块的过程中,执行了锁所属对象的wait()方法,这个线程会释放对象锁,而此线程对象会进入线程等待池中,等待被唤醒。
(1)notify()方法是随机唤醒一个线程,将等待队列中的一个等待线程从等待队列中移到同步队列中。
(2)在执行完notify()方法后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而在同步队列中的该线程才可以获取该对象锁。
2、对象所释放的三个场景:
(1)执行完同步代码块就会释放对象锁;
(2)在执行代码块的过程中,遇到异常而导致线程终止,也会释放对象锁;
(3)在执行同步代码块的过程中,执行了锁所属对象的wait()方法,这个线程会释放对象锁,而此线程对象会进入线程等待池中,等待被唤醒。
相关文章推荐
- 对象的notify方法的含义和对象锁释放的三种情况
- 对象的notify方法的含义和对象锁释放的三种情况
- Hibernate对象的三种状态区别以及save等几种方法的区别
- JS中的phototype JS的三种方法(类方法、对象方法、原型方法)
- js中判断对象是否为空的三种实现方法
- Android -- Intent传递对象的三种方法
- JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
- [JavaScript]每个函数就是一个对象(一):申明函数的三种方法
- JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
- JavaScript 三种创建对象的方法
- EasyDarwin开源流媒体服务器中一种实现对作用域内new对象自动释放的方法(值得借鉴)
- ARC机制下也有释放对象的方法
- jsp页面显示List中对象的属性三种方法
- cocos2dx添加文本的三种方法及适用情况CCLabelTTF,CCLabelBMFont,CCLabelAtlas
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- javascript中 对象创建的三种方式及其调用方法
- document获取对象的三种三方法
- 曾遇到操作session报未将对象引用设置到对象的实例的三种情况
- Hibernate中对象的三种状态,以及三种状态间的转化方法
- Java 获取Class对象的三种方法