对象的notify方法的含义和对象锁释放的三种情况
2017-10-10 11:34
337 查看
1,notify的含义
(1)notify一次只随机通知一个线程进行唤醒
(2)在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而呈wait状态所在的线程才可以获取该对象锁。
2,对象锁释放的三种情况
(1)notify一次只随机通知一个线程进行唤醒
(2)在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁,
要等到执行notify方法的线程将程序执行完 ,也就是退出sychronized代码块后,当前线程才会释放锁,
而呈wait状态所在的线程才可以获取该对象锁。
2,对象锁释放的三种情况
序号 | 场景 |
1 | 执行完同步代码块就会释放对象的锁 |
2 | 在执行同步代码块的过程中,遇到异常而导致线程终止,锁也会被释放 |
3 | 在执行同步代码块的过程中,执行了锁所属对象的wait方法,这个线程会释放对象锁,而此线程对象会进入线程等待池中,等待被唤醒 |
相关文章推荐
- 对象的notify方法的含义和对象锁释放的三种情况
- 对象的notify方法的含义和对象锁释放的三种情况
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- 详解对象属性复制的三种方法
- 【Hibernate框架开发之五】Hibernate对象的三种状态&&Session的常用方法
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- vue 数组和对象不能直接赋值情况和解决方法(推荐)
- ASP.NET Core 释放 IDisposable 对象的四种方法
- unity3d 游戏对象消失三种方法的区别(enabled/Destroy/active)
- MySQL提供了以下三种方法用于获取数据库对象的元数据:
- 获得一个类实例的Class对象的三种方法,与Class对象的相互比较
- Java中获取Class对象的三种方法
- 3.1.4在notify方法执行完之后不立即释放锁
- 释放TStringList.Objects中对象的方法研究
- 闰年(注:Scanner对象调用输入方法的特殊情况,害我调试半天 (╰_╯)#)
- Android中传递对象的三种方法
- javascript 显示对象的三种方法
- hibernate中PO对象的三种状态分析以及session中的一些方法的区别
- 什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append方法连接字符串性能更好?