java java.lang_Java之java.lang.IllegalMonitorStateException
今天又中彩了, 原本很簡單的多線程程序, 驀然間冒了個"java.lang.IllegalMonitorStateException" , 殺了個措手不及. 一直納悶, 為什么為什么? 查資料說該異常由于對象未獲取得到Lock就試圖操作Lock. 再細(xì)細(xì)源碼, 原來不不小將lock.lock()寫錯為lock.tryLock(). 坑爹啦! 充足的睡眠是很關(guān)鍵的, 讓你少做錯事! 穩(wěn)定的心態(tài)也是很關(guān)鍵的, 讓你少走彎路!
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;
}
總結(jié)
以上是生活随笔為你收集整理的java java.lang_Java之java.lang.IllegalMonitorStateException的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20万买理财还是基金好?收益和风险对比!
- 下一篇: python删除mysql数据库_pyt