android 使用ReentrantLock错误:locks.ReentrantLock$Sync.tryRelease

1.使用reentrantLock出现错误
2.代码:

 private Lock lock = new ReentrantLock();
 try {
       if (lock.tryLock()) {
         if (ClientLib.IfNeedUpdateLyric() == 1) {
            currentSongName = ClientLib.GetCurrentSongName();
            currentSingerName = ClientLib.GetCurrentSingerName();  
            Message message_lyr = handler.obtainMessage();
            message_lyr.what = 110;
            handler.sendMessage(message_lyr);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock(); // 报错行
        }

3.错误信息:

Process: com.multak.client, PID: 28025
java.lang.IllegalMonitorStateException

  at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:123)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1235)
   at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:429)
   at com.multak.client.MainActivity.GetProNum(MainActivity.java:845)
   at com.multak.client.MainActivity$17.run(MainActivity.java:789)
   at java.util.Timer$TimerImpl.run(Timer.java:284)
   
   

4.求指教啊……

阅读 2.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题