天天看点

LInux进程/线程 各种id

参考:Linux公社 微信公众号文章

一、进程与线程的异同

 1.进程是资源分配的基本单位,线程是系统调度的基本单位

2.进程是资源的集合,这些资源包括内存地址空间,文件描述符等,一个进程中的多个线程共享这些资源

3.CPU对任务进行调度时,可调度的基本单位是线程。如果一个进程中没有其他线程,可以理解为这个进程中只有一个主线程,该主线程独享进程的所有资源。

4.进程的个体间是完全独立的,线程间是彼此依存的并且共享资源。多进程环境中,任何一个进程的种植,不会影响到其他非子进程。而多线程环境中,父线程终止,全部子线程被迫终止。

二、各种ID

pid:进程id

tgid:线程组id,也就是线程组leader的pid,等于pid

tid/lwp:线程id,tid在系统提供的接口函数中更常用,lwp在用户态命令中常用(ps)

pgid:进程组id,也就是进程组leader的进程id

继续阅读