查看jstack日志,发现连个不同的重入锁锁住了一个资源

解决方案 »

  1.   

    "pool-3-thread-1" #53 prio=5 os_prio=0 tid=0x00007f6b08027000 nid=0x7665 waiting on condition [0x00007f6bc7990000]
       java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000005cbecb808> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at engine.pServer.PServerBlockingQueue.take(PServerBlockingQueue.java:179)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)   Locked ownable synchronizers:
    - <0x00000005cbecba58> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
    "pool-3-thread-4" #57 prio=5 os_prio=0 tid=0x00007f6afc13b000 nid=0x76ed waiting on condition [0x00007f6bc738c000]
       java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000005cbecba58> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
    at engine.pServer.SerializeDisk.deseriaToTake(SerializeDisk.java:97)
    at engine.pServer.PServerThreadPoolExecutor.deserialize(PServerThreadPoolExecutor.java:91)
    at engine.pServer.PServerThreadPoolExecutor.beforeExecute(PServerThreadPoolExecutor.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1139)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)   Locked ownable synchronizers:
    - <0x00000005cc725bd0> (a java.util.concurrent.ThreadPoolExecutor$Worker)