스레드 상태 및 프로세스 상태

스레드 상태 및 프로세스 상태

특정 프로세스의 모든 스레드가 동일한 상태(D, R, S...)를 공유합니까, 아니면 이러한 스레드 간에 차이가 있을 수 있습니까?

그렇다면 /proc특정 스레드의 상태에 대한 정보는 어디서 찾을 수 있습니까? /proc/<PID>/status현재 파일에서 프로세스 상태를 읽고 있습니다 .

답변1

물론 서로 다른 스레드가 동시에 서로 다른 스케줄러 상태에 있을 수 있습니다. 실제로, 모두 동일한 상태에 있다면 이는 우연의 일치입니다(stop(Z)는 제외됩니다. 전체 프로세스에 영향을 미치기 때문입니다).

이 하위 디렉터리에는 프로세스의 각 스레드에 대한 하위 디렉터리가 포함되어 있습니다. 이 디렉터리의 파일은 각 프로세스 디렉터리의 파일과 대부분 동일합니다. 일부 정보는 단순히 복제됩니다(예: 메모리 관련 정보, 환경, 권한 등). 스케줄러 상태(실행 중/휴면/IO/...)와 같은 스레드 관련 정보는 다를 수 있습니다./proc/PID/task

답변2

다음 명령을 사용하여 ps프로세스의 모든 스레드 상태를 알 수 있습니다.

ps H -p 27901

그러면 프로세스 27901과 관련된 모든 스레드와 해당 상태가 표시됩니다.

관련 정보