我正在尝试减少应用程序中特定代码路径上的锁争用。为了标识具有高锁争用的代码,我将YourKit连接到我的应用程序并使用“监视器”选项卡,并查看获取哪些锁导致了我要阻止的线程。我最终的目标是在YK GUI的“线程”选项卡中没有该线程的红点。
通常,争用是由于使用本征锁进行的读/读锁定引起的,因此可以通过使用ReentrantLock
代替本征锁来改善争用。确实,当我尝试此操作时,YourKit报告争用较低。该信息可靠吗? YourKit是否正确报告了ReentrantLock的使用情况?
我在带有Sun 1.6u18 32位JVM的Solaris 10上使用YourKit 8.0.24。
最佳答案
到目前为止,Looks like YourKit不会将“ ReentrantLock
”报告为在“线程”选项卡中被阻止。