linux核心 程序,輕量級程序,執行緒,執行緒組

2022-03-20 17:13:03 字數 725 閱讀 4495

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

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為當前程序)。

程序和和輕量級程序

在多執行緒程式中,乙個新的執行緒通常由乙個程序呼叫phtread create 函式而誕生的。新執行緒建立後,通常將這個程序稱為主線程。你也許會有所迷惑 乙個程序怎麼會程式設計執行緒?此刻有幾個執行緒,幾個程序?其實通過上文對執行緒 輕量級程序以及執行緒組之間關係的理解後,這個問題似乎也不難回答。我...

程序 輕量級程序(LWP) 執行緒

程序描述符 每程序有自己的thread info,分配釋放函式 alloc thread info,free thread info 執行緒組id tgid 用lwp實現多執行緒支援 程序組id pgrp 回話的id session 管理id資料結構 雜湊表管理 利用id找到所用相關的pd,方便 程...

Linux中的輕量級程序

在linux中,輕量級程序可以是程序,也可以是執行緒。我們所說的執行緒,在linux中,其實是輕量級程序之間共享 段,檔案描述符,訊號處理,全域性變數時 如果不共享,就是我們所說的程序。程序是資源管理的最小單位,執行緒是程式執行的最小單位。在作業系統設計上,從程序演化出執行緒,最主要的目的就是減小多...