Статус потока и статус процесса

Статус потока и статус процесса

Все ли потоки определенного процесса имеют одинаковый статус (D, R, S, ...) или между этими потоками могут быть различия?

Если да, то где /procя могу найти информацию о статусе определенного потока? /proc/<PID>/statusВ данный момент я читаю статус процесса из файлов.

решение1

Разные потоки, безусловно, могут находиться в разных состояниях планировщика в одно и то же время. Фактически, если они все находятся в одном и том же состоянии, это совпадение (за исключением остановленного (Z), поскольку это влияет на весь процесс).

Подкаталог содержит подкаталог на поток процесса. Файлы в этом каталоге в основном такие же, как в каталоге на процесс. Часть информации просто дублируется (например, информация, связанная с памятью, средой, привилегиями и т. д.). Информация, специфичная для потока, например состояние планировщика (работает/спящий/IO/…), может отличаться./proc/PID/task

решение2

Вы можете использовать psкоманду, чтобы узнать о состоянии всех потоков процесса:

ps H -p 27901

Это покажет все потоки, связанные с процессом 27901, и их статус.

Связанный контент