スレッド状態とプロセス状態

スレッド状態とプロセス状態

特定のプロセスのすべてのスレッドが同じ状態(D、R、S ...)を共有していますか、それともこれらのスレッド間に違いがありますか?

では、/proc特定のスレッドの状態に関する情報はどこにありますか?/proc/<PID>/status現在ファイルからプロセスステータスを読み込んでいます。

答え1

もちろん、異なるスレッドが同時に異なるスケジューラ状態にある可能性があります。実際、すべてが同じ状態にある場合、これは偶然の一致です(stop(Z)は除外されます。プロセス全体に影響を与えるため)。

このサブディレクトリには、プロセスの各スレッドのサブディレクトリが含まれています。このディレクトリのファイルは、各プロセスディレクトリのファイルとほとんど同じです。一部の情報は単に複製されます(たとえば、メモリ関連の情報、環境、権限など)。スケジューラの状態(実行中/休止/IO/...)などのスレッド関連情報は異なる場合があります。/proc/PID/task

答え2

次のコマンドを使用して、psプロセスのすべてのスレッド状態を知ることができます。

ps H -p 27901

これにより、プロセス27901に関連するすべてのスレッドとそのステータスが表示されます。

関連情報