关于java.lang.IllegalMonitorStateException
2015-09-17 11:54
495 查看
关于IllegalMonitorStateException异常:
api中的解释
public class IllegalMonitorStateExceptionextends RuntimeException
抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。
从以下版本开始:
JDK1.0
另请参见:
Object.notify(), Object.notifyAll(), Object.wait(), Object.wait(long), Object.wait(long, int), 序列化表格
也就是当前的线程不是此对象监视器的所有者。也就是要在当前线程锁定对象,才能用锁定的对象此行这些方法,需要用到synchronized ,锁定什么对象就用什么对象来执行
notify(),
notifyAll(),
wait(),
wait(long),
wait(long, int)操作,否则就会报IllegalMonitorStateException异常。 例如 : exapmle 1,锁定方法所属的实例对象: public synchronized void method(){ //然后就可以调用:this.notify()... //或者直接调用notify()... } exapmle 2,锁定方法所属的实例的Class: public Class Test{ public static synchronized void method(){ //然后调用:Test.class.notify()... } } exapmle 3,锁定其他对象: public Class Test{ public Object lock = new Object(); public static void method(){ synchronized (lock) { //需要调用 lock.notify(); } } }
相关文章推荐
- MAVEN搭建SPRINGMVC+HIBERNATE遇到的问题及解决方案
- java SE复习笔记13
- Java条形码生成技术-Barcode4j
- java面向对象(1)
- SpringMVC数据验证——第七章 注解式控制器的数据验证、类型转换及格式化——SpringMVC
- java基本数据类型默认值
- java session 解析
- 我的java 之旅——day 1
- java synchronized详解
- <java> 昨天今天明天
- JavaCV 图像修复-小学cvInpaint 算法
- test3.8
- selenium用java找到表格某一行某一列中含有特定文字的某个元素
- Java:关于super()的用法
- springmvc导出excel并弹出下载框
- Spring中的ContextLoaderListener使用
- Java Web实现的基本MVC实例分析
- [Java开发] cookie、session及实现记住密码,自动登录思路
- java学习之LinkedHashSet
- ubuntu安装jdk以及配置java环境变量