執行緒的狀態與行程的狀態

執行緒的狀態與行程的狀態

特定進程的所有執行緒是否共享相同的狀態(D、R、S...),或者這些執行緒之間可能存在差異?

如果是這樣,我/proc可以在哪裡找到有關特定線程狀態的資訊?我/proc/<PID>/status現在正在從文件中讀取進程狀態。

答案1

不同的執行緒當然可以同時處於不同的調度程序狀態。事實上,如果它們都處於相同的狀態,那就是巧合(除了停止(Z),因為這會影響整個過程)。

該子目錄包含進程的每個執行緒的子目錄。此目錄中的檔案與每個進程目錄中的檔案大部分相同。有些資訊只是重複的(例如與記憶體相關的資訊、環境、權限等)。特定於執行緒的資訊(例如調度程序狀態(運行/睡眠/IO/...))可能有所不同。/proc/PID/task

答案2

您可以使用ps命令來了解進程中所有執行緒的狀態:

ps H -p 27901

這將顯示與進程 27901 相關的所有執行緒及其狀態。

相關內容