天天看點

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

繼續閱讀