Все ли потоки определенного процесса имеют одинаковый статус (D, R, S, ...) или между этими потоками могут быть различия?
Если да, то где /proc
я могу найти информацию о статусе определенного потока? /proc/<PID>/status
В данный момент я читаю статус процесса из файлов.
решение1
Разные потоки, безусловно, могут находиться в разных состояниях планировщика в одно и то же время. Фактически, если они все находятся в одном и том же состоянии, это совпадение (за исключением остановленного (Z), поскольку это влияет на весь процесс).
Подкаталог содержит подкаталог на поток процесса. Файлы в этом каталоге в основном такие же, как в каталоге на процесс. Часть информации просто дублируется (например, информация, связанная с памятью, средой, привилегиями и т. д.). Информация, специфичная для потока, например состояние планировщика (работает/спящий/IO/…), может отличаться./proc/PID/task
решение2
Вы можете использовать ps
команду, чтобы узнать о состоянии всех потоков процесса:
ps H -p 27901
Это покажет все потоки, связанные с процессом 27901, и их статус.