3

アプリケーションの特定のコードパスでのロックの競合を減らしようとしています。ロックの競合が多いコードを特定するには、YourKitをアプリケーションに接続し、[監視]タブを使用して、ブロックしたいスレッドの原因となったロックを取得します。私の最終的な目的は、YKGUIの[スレッド]タブにこのスレッドの赤い点がないようにすることです。

ReentrantLock多くの場合、競合は組み込みロックを使用した読み取り/読み取りロックから発生するため、組み込みロックの代わりに使用することで競合を改善できます。実際、私がこれを試したとき、YourKitはより低い競合を報告しました。その情報は信頼できますか?YourKitはReentrantLockの使用状況を正しく報告していますか?

私は、Sun1.6u1832ビットJVMを搭載したSolaris10でYourKit8.0.24を使用しています。

4

2 に答える 2

0

YourKitReentrantLockは、現時点では、 [スレッド]タブでブロックされていると報告していないようです。

于 2010-06-18T08:12:41.883 に答える
-2

ロックアプローチに従う代わりに、アプリケーションがロックフリーになるように設計してみてください。揮発性変数とjava.util.concurrentのクラスを使用すると、ロックフリーでロックの競合がないアルゴリズムを記述できることがよくあります。

于 2010-06-15T15:29:19.677 に答える