特定进程的所有线程是否共享相同的状态(D、R、S...),或者这些线程之间可能存在差异?
如果是这样,我在哪里/proc
可以找到有关特定线程状态的信息?我/proc/<PID>/status
现在正在从文件中读取进程状态。
答案1
不同的线程当然可以同时处于不同的调度程序状态。事实上,如果它们都处于相同的状态,那就是巧合(除了停止(Z),因为这会影响整个过程)。
该子目录包含进程的每个线程的子目录。此目录中的文件与每个进程目录中的文件大部分相同。有些信息只是重复的(例如与内存相关的信息、环境、权限等)。特定于线程的信息(例如调度程序状态(运行/睡眠/IO/...))可能有所不同。/proc/PID/task
答案2
您可以使用ps
命令来了解进程的所有线程的状态:
ps H -p 27901
这将显示与进程 27901 相关的所有线程及其状态。