1
は私がJVMTI Event
たmethodEntryとそのコールバック関数が tdMethodEntry
で登録して、多くの多くのたmethodEntryイベントが存在する場合、私の質問は同じ種類のJVMTI EVENTが同じ1つのスレッドで処理されていますか?
これらのイベントはキューを介して同じスレッドによって処理されることがありますか?いくつかのスレッドで処理することができますか?
は私がJVMTI Event
たmethodEntryとそのコールバック関数が tdMethodEntry
で登録して、多くの多くのたmethodEntryイベントが存在する場合、私の質問は同じ種類のJVMTI EVENTが同じ1つのスレッドで処理されていますか?
これらのイベントはキューを介して同じスレッドによって処理されることがありますか?いくつかのスレッドで処理することができますか?
MethodEntry
コールバックは、他の多くのJVMTIのイベントコールバックのように、このイベントを発生させたアプリケーションスレッド上で同期的に実行されています。アプリケーションが複数のスレッドを実行する場合、MethodEntry
コールバックがこれらのスレッドで同時に実行される可能性があります。イベントはキューに入れられません。
JVMTI仕様Eventsセクションを参照してください。
***アプリケーションスレッドが1つしかない場合***ですが、コールバックは多くのことをします(時間がかかります)。この機会に***スレッドは1つしかありません***、***複数のスレッド***コールバックを同期してアプリケーションスレッド上で実行する必要がありますか? –
@cainiaofeiいいえ、コールバックはアプリケーションコードと同じスレッドで実行されます。アプリケーションの観点からは、コールバックの進行中にスレッドが停止します。 – apangin
つまり、**すべての** MethodEntryイベント**は同じ* oneスレッドによって処理されますか?私はちょっと混乱しています。私のプログラムの出力を通して、それは複数のスレッドによって処理されていると思います。 –