作业: 有一个水池,水池容量500L,一边为进水口,一边为出水口,要求进水放水不能同时进行,水池一旦满了不能继续注水,一旦空了,不能继续放水,进水速度5L/s,放水速度2L/s. 这是我学多线程时做的一道练习题,刚开始对wait()方法存在错误理解导致运行时报异常-----java.lang.IllegalMonitorStateException,修复后,在此把错误写法以及最终正确写法都整理出来. class Water{ static int litre = 500; boolean fla…
早上一来,例行性的看主要环境的运行情况,发现有个环境中有如下异常: 17-02-28 08:13:37.368 ERROR pool-2-thread-65 com.ld.net.spider.SpiderClient.call(SpiderClient.java:75): java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at s…
代码 package thread; public class TestChongNeng { public static void main(String[] args) { Thread t1 = new Thread() { public void run() { while (true) { for(int i=1;i<=3;i++) { System.out.printf("波动拳第%d发 %n",i); } try { //synchronized (this) {…
public class ThreadTest implements Callable<String> { public String call() throws Exception { // TODO Auto-generated method stub wait(10000); return "hello"; } } 调用代码: public static void main(String[] args) { System.out.println("開始启动线…
今天又中彩了, 原本很简单的多线程程序, 蓦然间冒了个"java.lang.IllegalMonitorStateException" , 杀了个措手不及. 一直纳闷, 为什么为什么? 查资料说该异常由于对象未获取得到Lock就试图操作Lock. 再细细源码, 原来不不小将lock.lock()写错为lock.tryLock(). 坑爹啦! 充足的睡眠是很关键的, 让你少做错事! 稳定的心态也是很关键的, 让你少走弯路!public boolean put(String value)…
笔者使用websocket进行通信,服务器异步返回.websocket服务器又异步调用其他websocket,也是异步访问. 由于无法预测服务器调用第三方websocket什么时候调用结束,使用了CountDownLatch. 每次报错都如下: java.lang.reflect.InvocationTargetException: null at sun.reflect.GeneratedMethodAccessor419.invoke(Unknown Source) at sun.refle…
1.异常原因及解释 首先你要了解这个异常为什么会抛出,这个异常会在三种情况下抛出:1>当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法;2>当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法.3>当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法. java.lang.IllegalMonitorStateException是在调用object的wait和notify,notifyAll方法的时候可能会出现的异常. 在调用上…
1.异常原因及解释 首先你要了解这个异常为什么会抛出,这个异常会在三种情况下抛出:1>当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法;2>当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法.3>当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法. java.lang.IllegalMonitorStateException是在调用object的wait和notify,notifyAll方法的时候可能会出现的异常. 在调用上…
异常现象: 打开Eclipse,出现 An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException 错误弹框: 出现原因: 不合理的关闭eclipse才发生的错误: 解决办法: 删除程序的工作空间下的.project文件 具体路径: workspace\.metadata\.plugins\org.eclipse.core.resources\.project…
问题分析 报这个错误是指你的jar包或者class 的被编译的jdk版本比当前runtime的jdk版本高. 首先,确定你当前的运行版本: Java代码   Java -version java version "1.5.0_22" 发现你当前jdk是1.5,但上面的错误是你的加载的class jdk版本是1.6 解决问题 1)如果是jia包,重新用1.5 jdk编译你的jar 包 2)如果是java文件或者项目,设置你当前runtime 的编译版本为1.5,右键项目->属性-&…