3

我正在尝试减少应用程序中特定代码路径上的锁争用。为了识别具有高锁争用的代码,我将 YourKit 连接到我的应用程序并使用“监视器”选项卡并查看获取哪些锁导致我关心的线程阻塞。我的最终目标是在 YK GUI 的“线程”选项卡中没有这个线程的红点。

通常争用是由使用内部锁的读/读锁定引起的,因此可以通过使用 aReentrantLock而不是内部锁来改进这些。事实上,当我尝试这样做时,YourKit 报告的争用较低。这些信息可靠吗?YourKit 是否正确报告了 ReentrantLock 的使用情况?

我在带有 Sun 1.6u18 32 位 JVM 的 Solaris 10 上使用 YourKit 8.0.24。

4

2 回答 2

0

到目前为止,YourKit 似乎没有在“线程”选项卡中报告sReentrantLock被阻止。

于 2010-06-18T08:12:41.883 回答
-2

尝试将您的应用程序设计为无锁的,而不是遵循锁定方法。使用 volatile 变量和 java.util.concurrent 中的类,您通常可以编写无锁算法,因此不会发生锁争用。

于 2010-06-15T15:29:19.677 回答