
特定のプロセスのすべてのスレッドが同じ状態(D、R、S ...)を共有していますか、それともこれらのスレッド間に違いがありますか?
では、/proc
特定のスレッドの状態に関する情報はどこにありますか?/proc/<PID>/status
現在ファイルからプロセスステータスを読み込んでいます。
答え1
もちろん、異なるスレッドが同時に異なるスケジューラ状態にある可能性があります。実際、すべてが同じ状態にある場合、これは偶然の一致です(stop(Z)は除外されます。プロセス全体に影響を与えるため)。
このサブディレクトリには、プロセスの各スレッドのサブディレクトリが含まれています。このディレクトリのファイルは、各プロセスディレクトリのファイルとほとんど同じです。一部の情報は単に複製されます(たとえば、メモリ関連の情報、環境、権限など)。スケジューラの状態(実行中/休止/IO/...)などのスレッド関連情報は異なる場合があります。/proc/PID/task
答え2
次のコマンドを使用して、ps
プロセスのすべてのスレッド状態を知ることができます。
ps H -p 27901
これにより、プロセス27901に関連するすべてのスレッドとそのステータスが表示されます。