我正在尝试减少应用程序中特定代码路径上的锁争用。为了识别具有高锁争用的代码,我将YourKit连接到我的应用程序,并使用“监视器”选项卡,查看哪些锁导致了我关心的线程阻塞。我的最终目标是在YK GUI的" thread“选项卡中没有这个线程的红点。
通常,争用是由使用固有锁的读/读锁定引起的,因此可以通过使用ReentrantLock而不是固有锁来改善这些问题。事实上,当我尝试这样做时,YourKit报告了较低的争用。这些信息可靠吗?YourKit是否正确地报告了重入锁的使用情况?
我在Solaris10上使用Sun1.6u1832位YourKit 8.0.24。
发布于 2010-06-18 16:12:42
到目前为止,Looks like YourKit不会在“线程”选项卡中报告ReentrantLock%s被阻止。
发布于 2010-06-15 23:29:20
与其遵循锁定方法,不如尝试将应用程序设计成无锁的。使用易失性变量和java.util.concurrent中的类,您通常可以编写无锁的算法,因此没有锁争用。
https://stackoverflow.com/questions/3045936
复制相似问题