我想减少我的应用程序特定代码路径上的锁争用。为了确定高锁争用的代码,我YourKit连接到我的应用程序,并使用“监视器”选项卡,看到获取哪些锁已造成我关心到阻塞线程。我的最终目标是没有红点该线程在YK GUI的“线程”标签。

通常,争用源于读/读取使用固有锁锁定,因此那些可以通过使用代替ReentrantLock的内部锁被改善。事实上,当我尝试这样做,YourKit报告了较低的争夺。是信息可靠吗?的ReentrantLock的不YourKit报告的使用是正确的?

我使用YourKit 8.0.24在Solaris 10与Sun 1.6u18 32位JVM。

有帮助吗?

解决方案

看起来像 YourKit,截至目前,没有报告作为受阻于“线程”标签ReentrantLocks。

其他提示

,而不是按照锁定的方法尝试设计您的应用程序是lockfree。 用挥发性变量和java.util.concurrent中的类可以经常写算法是lockfree,因此没有锁争用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top