0

JVMTIは、イベントを提供しContendedMonitorEnterContendedMonitorEnteredの使用に関連するイベントを検出しますsynchronizedsynchronizedReentrantLock以外の何物でもありません。

ここで、ロック構造に関連するイベントも追跡したいと思いますReentrantLocklock()そのunlock()イベントのメソッドの開始/終了にフックすることができます。ただし、これらのイベントフックは、呼び出されたオブジェクトに関する情報を提供しません。したがって、異なるものを区別できずReentrantLock、したがって、現在ロックされているロックに関する情報をログに記録できません。

これを追跡する他の方法はありますか?

4

1 に答える 1

0

自分でロードするクラスをインストルメント化する必要があります。これはかなり複雑ですが、幸いなことに、JDKと一緒に(他の役立つ例とともに)提供されるjava_crw_demo.cがあります。そこで、いくつかの基本的な種類のインストルメンテーションを実行する実装を見つけることができます。あなたは仕事をするためにそれを簡単に修正することができます。私は今、いくつかの大学生のプロジェクトのためにこれを行っています。

于 2011-09-08T19:51:30.063 に答える