1. <wbr id="cnjas"><legend id="cnjas"></legend></wbr>

          Linux培訓
          達內IT學院

          400-111-8989

          linux線程之NPTL

          • 發布:Linux培訓
          • 來源:Linux基礎
          • 時間:2016-11-11 16:18

          NPTL

          到了linux 2.6, glibc中有了一種新的pthread線程庫–NPTL(Native POSIX Threading Library).

          NPTL實現了前面提到的POSIX的全部5點要求. 但是, 實際上, 與其說是NPTL實現了, 不如說是linux內核實現了.

          在linux 2.6中, 內核有了線程組的概念,task_struct結構中增加了一個tgid(thread group id)字段.

          如果這個task是一個”主線程”, 則它的tgid等于pid, 否則tgid等于進程的pid(即主線程的pid).

          在clone系統調用中, 傳遞CLONE_THREAD參數就可以把新進程的tgid設置為父進程的tgid(否則新進程的tgid會設為其自身的pid).

          類似的XXid在task_struct中還有兩個:task->signal->pgid保存進程組的打頭進程的pid、task->signal->session保存會話打頭進程的pid。通過這兩個id來關聯進程組和會話。

          有了tgid, 內核或相關的shell程序就知道某個tast_struct是代表一個進程還是代表一個線程, 也就知道在什么時候該展現它們, 什么時候不該展現(比如在ps的時候, 線程就不要展現了).

          而getpid(獲取進程ID)系統調用返回的也是tast_struct中的tgid,而tast_struct中的pid則由gettid系統調用來返回.

          在執行ps命令的時候不展現子線程,也是有一些問題的。比如程序a.out運行時,創建了一個線程。假設主線程的pid是10001、子線程是10002(它們的tgid都是10001)。這時如果你kill 10002,是可以把10001和10002這兩個線程一起殺死的,盡管執行ps命令的時候根本看不到10002這個進程。如果你不知道linux線程背后的故事,肯定會覺得遇到靈異事件了。

          為了應付”發送給進程的信號”和”發送給線程的信號”, task_struct里面維護了兩套signal_pending,一套是線程組共享的, 一套是線程獨有的.

          通過kill發送的信號被放在線程組共享的signal_pending中, 可以由任意一個線程來處理; 通過pthread_kill發送的信號(pthread_kill是pthread庫的接口, 對應的系統調用中tkill)被放在線程獨有的signal_pending中, 只能由本線程來處理.

          當線程停止/繼續, 或者是收到一個致命信號時, 內核會將處理動作施加到整個線程組中.

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:linux線程之linux threads
          下一篇:linux線程之NGPT

          linux線程之NPTL

          linux線程之linux threads

          關于linux線程

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          欧美做爰视频免费播放_做暖全过程免费的视频_性爱免费视频 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>