4

1 つの簡単な質問です。今日、アプリケーションをデバッグしていて、初めて自分自身に質問しました。Eclipse Debug Mode には多くのオプションと値がありますが、ビューの 1 つは、デバッグ中に少し考えさせられました。これらThreadsはすべて絵に描かれていますが、それらは何を意味するのでしょうか? アプリケーションで実行されているスレッドは? 私が開始/停止しているスレッド、またはアプリを制御するシステムレベルに似ています。そんなに多くのスレッドがあるのは正常ですか、それとも何か間違っていますか?

スレッド

あらゆる種類の情報/ヘルプに感謝します!

4

1 に答える 1

5

これらは、VM インスタンス内に存在するすべてのスレッドです。ランタイム中の任意の時点で複数の実行または待機が発生するのは正常です。ジョブまたはタイマーを生成するたびに、スレッドが作成されるか、プールから取得されます。スクリーンショットでは、おそらくアイドル状態のプール スレッドも多数表示されています。また、UI プログラミングについて考えてみてください。通常、表示スレッドはスタンドアロン スレッドであり、UI スレッドで長時間実行される操作はアプリケーション全体をフリーズさせているように見えるため、他の非 UI スレッドによってイベントが呼び出されます。

編集:明確にするために、これらのスレッドのすべてが意識的に呼び出されるわけではありません。VM 自体によって開始されるものもあれば、使用している可能性のあるフレームワークやライブラリによって開始されるものもあれば、ユーザーによって開始されるものもあります。その中で、いわゆる「メイン」スレッドが最も顕著です。

EDIT2: デバッグ ビューで特定のスレッドを一時停止し、現在のスタック トレースを調べることもできます。これにより、これらすべてのスレッドが何を行っているかについての手がかりが得られる場合があります。おそらく、オブジェクトを待機しているか (一部のプール ディスパッチャの厚意による)、空のブロッキング キューなどでポーリングしている可能性があります。

よろしく、h.

于 2013-01-11T12:39:50.637 に答える