zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    Java08_Lambda表达式
    Java基础02
    Java基础07
    JAVA基础06
    Java基础05
    Java基础01
    面向对象与面向过程
    Java常识2
    CSS常用属性记录
    geoserver发布热力图服务
  • 原文地址:https://www.cnblogs.com/zolo/p/5849318.html
Copyright © 2011-2022 走看看