0
ReentrantReadWriteLock
如何工作?它是自旋鎖嗎?是否將ReentrantReadWriteLock實現爲自旋鎖?
的問題來自Elasticsearch,當它顯示
java.lang.ThreadLocal$ThreadLocalMap.expungeStaleEntry(Unknown Source)
java.lang.ThreadLocal$ThreadLocalMap.remove(Unknown Source)
java.lang.ThreadLocal$ThreadLocalMap.access$200(Unknown Source)
java.lang.ThreadLocal.remove(Unknown Source)
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(Unknown Source)
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(Unknown Source)
熱線程
中的所有快照和CPU佔用率高的同時。它看起來像旋轉鎖。
謝謝你的回答!是的,我看到了它......但有些人公然聲稱,當他們在我的問題中看到這樣的堆棧跟蹤時,問題出現在自旋鎖定中。我在'ThreadLocal'中製作了'ReentrantReadWriteLock'副本,但是我沒有時間去測試,因爲改變GC已經解決了我們的問題,這聽起來很奇怪...... – cybersoft
你介意不用在ThreadLocal中保存計數器?我可能會用它來解決另一個我們正在努力解決的問題。 –
它沒有任何困難:http://pastebin.com/jXVyk1Db但它可能不起作用,因爲這些保持計數器上有一些邏輯。代碼與此僅被註釋掉,你可以看 – cybersoft