【C/C++多線程編程之五】pthread線程深入理解

來源:互聯網
上載者:User

標籤:osi   pop   通過   自己的   nts   不同   共用資料   class   post   

多線程編程之pthread線程深入理解
        Pthread 是 POSIX threads 的簡稱,是POSIX的 線程標準。          前幾篇部落格已經能給你初步的多線程概念。在進一步學習線程同步等多線程核心知識之前,須要對多線程深入的理解。非常多人忽略或者迴避這部分內容,直接的問題是學習者無法把握多線程編程的內在原理,理解的層次太淺。


          1.進程資源:                      進程資源有儲存資源與其它資源。其它資源套件括環境變數。地址,檔案等。儲存資源。進程的記憶體配置,部落格【C解析之三】C語言的記憶體配置具有非常好的參考價值。

多線程進程有所不同:

         靜態區:儲存全域變數和靜態變數          堆區:動態分配區 上述靜態區。堆區以及其它資源統稱為進程的共用資源。共用資源被該進程的全部線程所共用。          線程堆:線程自己維護的堆          線程棧:線程自己維護的棧 上述的線程堆,線程棧是每一個線程專屬的資源。線程間相互獨立,不共用。當建立一個線程時。系統會為線程分配堆棧。

                   你可能已經發現,線程共用進程堆的同一時候。還自己維護一個堆棧。

                       2.線程私人資料:
         多線程編程下。進程的全域變數通過儲存於共用資料區,實現為全部線程 共用。同一時候,線程還能夠有自己的全域變數,稱為線程的私人資料。

愛思考的讀者可能會問,那線程的非全域變數在哪呢。別忘了非全域變數的空間在棧中哦。


         3.線程消亡:
         線程消亡時,線程自由的線程堆棧會被釋放,歸還給系統,同一時候線程的私人資料也會被釋放。線程的共用資源。靜態區。共用的進程堆以及其它資源。因為這些資源是線程間共用的。故不會隨線程消亡而釋放。

         須要特別注意的是。線程堆與共用的進程堆之間的差異。

         線程理解至此。之後的進一步學習。會有更深入的體會。

【C/C++多線程編程之五】pthread線程深入理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.