linux內核——進程,輕量級進程,線程,線程組


本篇文章將介紹本人對以下問題的理解。

1、進程、輕量級進程、線程、線程組之間的關系

2、及它們的標識相關說明

一、進程、輕量級進程、線程、線程組之間的關系

借助上圖說明:

進程P0有四條執行流,即線程,

主線程t0是它的第一個線程,且與進程P0相關聯,

之后衍生出t1、t2、t3三個線程,這三個線程與輕量級進程P1、P2、P3一一關聯,

所有的進程、輕量級進程、線程組成了線程組。

輕量級進程也是進程,只不過它與某進程的某特定線程相關聯。

二、它們的標識相關說明

pid是進程標識符,tgid是線程組標識符

每個進程都有自己的pid,如圖中:進程pid(P0)= a,輕量級進程pid(P1)= b / pid(P1)= c / pid(P1)= d。

同屬於一個線程組的所有進程、輕量級進程有同樣的線程組標識符,且其為第一個線程所關聯的進程標識符,

例如:圖中第一個線程為t0,它所關聯的進程為P0,pid(P0)= a,所以tgid(P1)= a / tgid(P1)= a / tgid(P1)= a / tgid(P1)= a。

當我們使用函數getpid(current_p)時,返回值不是current_p的pid,而是它的tgid。(current_p為當前進程)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM