Status de um thread versus status de um processo

Status de um thread versus status de um processo

Todas as threads de um processo específico compartilham o mesmo status (D, R, S, ...) ou pode haver diferenças entre essas threads?

Em caso afirmativo, onde /procencontro informações sobre o status de um determinado tópico? Estou lendo o status do processo nos /proc/<PID>/statusarquivos no momento.

Responder1

Threads diferentes certamente podem estar em estados diferentes do agendador ao mesmo tempo. Na verdade, se estiverem todos no mesmo estado, é uma coincidência (exceto para parado (Z), porque isso afeta todo o processo).

O subdiretório contém um subdiretório por thread do processo. Os arquivos neste diretório são basicamente os mesmos do diretório por processo. Algumas das informações são simplesmente duplicadas (por exemplo, informações relacionadas à memória, ambiente, privilégios, etc.). As informações específicas de um thread, como o estado do agendador (em execução/suspenso/IO/…), podem ser diferentes./proc/PID/task

Responder2

Você pode usar pso comando para descobrir o status de todos os threads de um processo:

ps H -p 27901

Isso mostrará todos os threads relacionados ao processo 27901 e seus status.

informação relacionada