java.lang.IllegalMonitorStateException异常抛出的解决方案
时间:2019-06-12
本文章向大家介绍java.lang.IllegalMonitorStateException异常抛出的解决方案,主要包括java.lang.IllegalMonitorStateException异常抛出的解决方案使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在做项目的时候,遇到一个java.lang.IllegalMonitorStateException异常抛出,经过断点调试以及资料搜索,得知这个问题,是在于wait()和notify(),这两个等待的方法上,需synchronized加锁方法进行同步,如此这个问题就这么简单的解决了。一下代码是我遇到问题的示例:
没有synchronized加锁的情况,抛出该异常信息
public void get() { // 如果flag=false if (!flag) { try { this.wait();// 消费者等待 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 若是有的情况下,则消费者进行其购买 System.out.println(this.num + this.type); // 如果flag为false,则已经卖完了 flag = false; // 则等待生产者生产线程 this.notify(); } }
加了synchronized的情况,得以解决
public synchronized void get() { // 如果flag=false,则表示没有包子 if (!flag) { try { this.wait();// 消费者等待 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 若是有的情况下,则消费者进行其购买 System.out.println(this.num + this.type); // 如果flag为false,则已经卖完了 flag = false; // 则等待生产者生产线程 this.notify(); } }
原文地址:https://www.cnblogs.com/ztyc/p/11008677.html
- "RDLC报表"速成指南
- Silverlight:双向绑定综合应用-自动更新集合汇总字段
- Silverlight:双向绑定综合应用-多集合的依赖绑定
- python sorted排序用法详解
- Silverlight:MouseDragElementBehavior无法应用于ListBox的变相解决办法
- Silverlight:xap包(或本地缓存)下载版本更新的解决思路
- Web开发感悟:数据绑定是一种技术,更是一门艺术
- 我国域名注册保有量位居世界第二,顶级域名55个
- Silverlight:纠结的快捷键问题
- “default关键字”与“序列化传输”的注意事项
- 常见排序算法-Python实现
- 免费域名与收费域名的差别有哪些?
- c++学习笔记之封装篇(上)
- c++学习笔记之继承篇
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- sklearn 模型的保存与加载
- R:如何使用RMarkdown渲染中文pdf报告
- 图解 SQL,这也太形象了吧!
- 用python爬取前程无忧网,看看我们是否真的“前程无忧”?
- 超硬核的 Python 数据可视化教程!
- Spark Core项目实战 | Top10 热门品类
- Spark Core项目实战 | 页面单跳转化率统计
- Chrome DevTools 全攻略!助力高效开发
- 终于有人把 Docker 讲清楚了,别再说不会 Docker 了!
- 如何在ggplot2图形上添加显著性差异注释?
- 动态曲线图(linechart)--Matplotlib绘制
- 分布式事务、分布式锁、分布式session
- Redis为什么变慢了?常见延迟问题定位与分析
- PyTorch Trick集锦
- client-go 之 Indexer 的理解