java java.lang_Java之java.lang.IllegalMonitorStateException
生活随笔
收集整理的這篇文章主要介紹了
java java.lang_Java之java.lang.IllegalMonitorStateException
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天又中彩了, 原本很簡單的多線程程序, 驀然間冒了個"java.lang.IllegalMonitorStateException" , 殺了個措手不及. 一直納悶, 為什么為什么? 查資料說該異常由于對象未獲取得到Lock就試圖操作Lock. 再細細源碼, 原來不不小將lock.lock()寫錯為lock.tryLock(). 坑爹啦! 充足的睡眠是很關鍵的, 讓你少做錯事! 穩定的心態也是很關鍵的, 讓你少走彎路!
public boolean put(String value) {
boolean result = false;
lock.tryLock();
try {
if (queue.size() < config.queueSize) {
queue.addLast(value);
result = true;
} else {
result = putToBuffer(value);
}
if (result) {
notEmpty.signalAll();
}
} catch (IOException e) {
logger.error("文件緩存添加元素錯誤", e);
} finally {
lock.unlock();
}
return result;
}
總結
以上是生活随笔為你收集整理的java java.lang_Java之java.lang.IllegalMonitorStateException的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20万买理财还是基金好?收益和风险对比!
- 下一篇: Java笔记(一)—StringBuil