ConcurrentHashMap是否有可能“死锁”?
我们遇到了一个奇怪的问题ConcurrentHashMap
,其中似乎有两个线程正在调用put()
,然后在方法内部永远等待Unsafe.park()
。从外部看,内部看起来像是一个僵局ConcurrentHashMap
。
到目前为止,我们只看到这种情况发生一次。
谁能想到任何可能导致这些症状的东西?
:相关线程的线程转储在这里:
“ [已编辑]线程2” prio = 10 tid = 0x000000005bbbc800 nid = 0x921等待条件[0x0000000040e93000] java.lang.Thread.State:等待(停车)
在sun.misc.Unsafe.park(本机方法)
-停车以等待<0x00002aaaf1207b40>(java.util.concurrent.locks.ReentrantLock $ NonfairSync)
在java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
在java.util.concurrent.locks.ReentrantLock $ NonfairSync.lock(ReentrantLock.java:186)
在java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
在java.util.concurrent.ConcurrentHashMap $ Segment.put(ConcurrentHashMap.java:417)
在java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:883)
于[删除]
“ [已编辑]线程0” prio = 10 tid = 0x000000005bf38000 nid = 0x91f等待条件[0x000000004151d000]
java.lang.Thread.State:等待(停车)
在sun.misc.Unsafe.park(本机方法)
-停车以等待<0x00002aaaf1207b40>(java.util.concurrent.locks.ReentrantLock $ NonfairSync)
在java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
在java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
在java.util.concurrent.locks.ReentrantLock $ NonfairSync.lock(ReentrantLock.java:186)
在java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
在java.util.concurrent.ConcurrentHashMap $ Segment.put(ConcurrentHashMap.java:417)
在java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:883)
于[删除]
回答:
可能不是您想要的答案,但这可能是JVM错误。看到
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6865591
以上是 ConcurrentHashMap是否有可能“死锁”? 的全部内容, 来源链接: utcz.com/qa/399157.html