Windows豆知識 タスクマネージャーでプロセス毎のスレッド数やハンドル数などを表示する方法

プログラミング
スポンサーリンク
スポンサーリンク

マルチスレッドプログラムを開発するときなど、プロセス毎のスレッド数やハンドル数などを確認したい時があります。
これらをWindows標準のタスクマネージャーで確認する方法をまとめます。

はじめに

Windows環境でマルチスレッドのプログラムを開発するときなど、プロセス毎のスレッド数やハンドル数などを確認したいことがあります。
意図しないスレッドが残っていたりするとメモリリーク(リソースリーク)の原因になり、最悪システム停止の危険性があります。
開発ツールなどで確認する方法もありますが、タスクマネージャーでお手軽に確認できるのでその方法をまとめておきます。

タスクマネージャーの使い方

タスクマネージャーの起動方法

タスクマネージャーの起動方法はいろいろありますが、タスクバー(Windows画面の下(標準時)に表示)から起動する例を2つ紹介します。
(注)画像はWindows10のものです。

  • Windowsマークを右クリックして、出てきたメニューから「タスクマネージャー」を選択する。
  • タスクバーのアイコンが無い部分を右クリックして、出てくるメニューから「タスクマネージャー」を選択する。

インストールした直後など、タスクマネージャーを起動すると次のようにシンプルな画面が表示されます。

右下の「詳細」をクリックすると次のように表示内容が変わります。

「詳細」タブ

タスクマネージャーの「詳細」タブを選択すると次のような表示になります。

この画面の列のタイトル(「名前」「PID」など)の部分を右クリックすると次のサブメニューが表示されます。

このメニューの「列の選択」をクリックすると次のダイアログが表示されます。

表示できる項目は多いですが、この中から「スレッド数」や「ハンドル数」を選択して「OK」で閉じます。

これで、プロセス毎のスレッド数やハンドル数を表示する列を追加できます。
※列は「スレッド数」などの部分をドラッグして左右に移動することができます。

図の例では、explorer.exe(エクスプローラー)のスレッド数は58、ハンドル数は2,394になります。

「パフォーマンス」タブ

タスクマネージャーの「パフォーマンス」タブを選択するとCPU,メモリ,ディスク,イーサネット(ネットワーク)などの負荷をグラフ表示します。

グラフィカル ユーザー インターフェイス

自動的に生成された説明

図はVM上のWindows10の表示のため「仮想プロセッサ」となっています。
通常は「論理プロセッサ」と表示されます。

このCPUのグラフ画面で、Windows OS全体のスレッド数やハンドル数を確認することができます。

スレッドの負荷がどの論理プロセッサ(仮想プロセッサ)にかかっているかなど確認したい場合は次の操作でグラフの表示形式を変更します。

グラフ内で右クリックして表示されるサブメニューから、[グラフの変更]-[論理プロセッサ]を選択すると次のようになります。

グラフィカル ユーザー インターフェイス

中程度の精度で自動的に生成された説明

論理プロセッサ(仮想プロセッサ)の1つがスレッドを実行できる最小単位を表し、図ではグラフが4つ、つまり同時に4スレッド実行可能になります。
タイムシェアリングによりスレッドは切り替わるので、スレッドの生成/起動は4つ以上でも可能ですが同時実行できるのは図の場合は4つまでです。

マルチスレッドのプログラムを開発する場合、スレッドの負荷が分散できているかなどをこのグラフの表示を見ながら行います。

最後に

Windows標準のタスクマネージャーはスレッド数など含め様々な情報を表示できます。
タスクマネージャーの使い方を図入りで紹介しているケースが少ないようでしたのでまとめてみました。
何かの参考になれば幸いです。

ご意見、ご要望、不具合などのご連絡

ご意見、ご要望、不具合などのご連絡は次からお願いします。

  • コメント
    本投稿へ下部の コメントを書き込む からご連絡ください。
    コメントは承認方式となっており、当方が承認しないと公開表示されません。
    公開表示を希望されない方はその旨コメントに記述ください。
  • Twitter
    ご連絡は @dratech2020 https://twitter.com/dratech2020 の該当ツイートに返信するか、ハッシュタグ「#プログラミングの深淵を求めて」を付けてツイートしてください。 (すぐに気が付かない場合がありますので、ご了承ください)

コメント

タイトルとURLをコピーしました