Linux pid,tgid关系

来源:互联网 发布:js slice 编辑:程序博客网 时间:2024/05/18 00:37

一、进程PID和线程PID

        线程是轻量级的进程,有自己的PID,只不过共享进程的一些数据,比如说堆。

二、tgid

       thread group id。对于同一进程中的所有线程,tgid都是一致的,为该进程的进程ID。

USER VIEW <-- PID 43 --> <----------------- PID 42 ----------------->                     +---------+                     | process |                    _| pid=42  |_                  _/ | tgid=42 | \_ (new thread) _       _ (fork) _/   +---------+                  \      /                                        +---------++---------+                                    | process || process |                                    | pid=44  || pid=43  |                                    | tgid=42 || tgid=43 |                                    +---------++---------+ <-- PID 43 --> <--------- PID 42 --------> <--- PID 44 --->                     KERNEL VIEW

在这里你可以清晰的看到,创建一个新的进程会给一个新的PID和TGID,并且2个值相同,
当创建一个新的线程的时候,会给你一个新的PID,并且TGID和之前开始的进程一致。