線程概念的引入

1.目的

         1)線程是什麼網絡

         2)引入線程有什麼用併發

          3)爲何引入線程spa

2.歷史

          20世紀60年代提出進程的概念,在操做系統中一直都是以進程做爲獨立運行的單位操作系統

          20世紀80年代中期,在操做系統領域,提出了比進程更小的能獨立運行的基本單位---線程線程

3.引入線程做用

           引入進程的目的

                  1)爲了使多個程序併發執行 進程

                    2)改善資源利用率圖片

                    3)提升系統吞吐量內存

        從內存管理的角度看資源

            一個系統多個進程,他們都會使用內存,爲了確保內存互不影響,內存大小位置都是固定的;內存管理

            進程間互相不影響,一個進程崩潰了,不影響其餘進程

            舉個栗子:

          你能夠在window系統上邊一邊聽音樂,一邊玩QQ,

          聽音樂開個一個進程,玩QQ開個一個進程

                引入線程的目的

                      1)提升系統的併發性

              舉個栗子

                若是咱們把運行在操做系統的程序,好比QQ看做一個進程,那麼程序執行不可能一個分支,

你可能用來傳輸文字A,發送圖片B

具體的執行就是

               1) QQ獲取CPU上下文

                2)開始執行QQ中的傳輸文件A 

                3)執行QQ中的發送圖片B

               4)CPU保存QQ的上下文

執行A B時共享了QQ的資源,CPU沒有進行上下文切換  A B就是線程

4.詳解

          咱們首先從進程談起,進程有兩個基本屬性

            1)進程是一個能夠擁有資源的獨立單位

            2)進程同時也是一個能夠獨立調度和分配的基本單位

所謂的資源就是計算機裏的中央處理器,內存,文件,網絡等等。

因此進程能夠併發執行

爲了使線程能夠併發執行,系統還必須進行以下操做

 1)建立進程

系統在建立進程時,必須分配必須的,除處理機之外的全部資源;

內存空間;IO設備,進程控制塊PCB

2)撤銷進程

系統在撤銷進程時,必須對這些資源進行回收,並撤銷PCB塊

3)進程切換

在對線程進行切換時,須要保存當前進程的CPU環境和須要切換的進程的CPU上下文

5.思考

           思考?

             是否能夠把進程的兩個屬性分開,

             做爲系統獨立調度和分配和單元,而不獨立分配資源,產生了線程

在引入線程的系統中,線程是進程的一個實體,是被系統獨立調度和分配的基本單位,

線程本身不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧)

但它能夠和同屬同一個進程的其餘線程共享進程的所有資源

一個線程能夠建立和撤銷另外一個線程

同一進程的多個線程能夠併發執行

因爲線程之間相互制約,線程運行時會出現間斷

線程通常擁有就緒 阻塞 執行三種基本狀態

有些系統可能線程還有終止狀態

相關文章
相關標籤/搜索