多執行緒程式設計中的幾個基本概念

發表於2013-07-07

    想要更好的進行多程式和多執行緒程式設計,建議先了解幾個概念。

    一.概念點

        1.程式是什麼

        2.程式概念的引入

        3.執行緒是什麼

        4.執行緒概念的引入

        5.引入執行緒的好處

   二.詳細介紹

       1.程式是什麼

           想要搞懂程式的概念,首先要搞懂程式的概念,程式是什麼呢?

           程式,是指令和資料的一個集合,是靜態概念,可長期儲存。

           程式,是程式在一個資料集合上的執行過程,是個動態的概念。

           兩者什麼關係呢?

           一個程式可以對應多個程式或單個程式。

           一個程式可以對應一個程式或一段程式。

          它的組成是什麼呢?

          包括程式,資料集合及程式控制塊(PCB)

          CPU對程式的排程,切換,管理等都是通過PCB來完成

          舉例:

         如程式A切換到程式B,進過一下步驟:

           1.保護程式A的現場

               即將程式A的當前執行資訊儲存到程式A的PCB中,儲存點包括:程式執行的當前位置,程式狀態

           字,所有暫存器的值等

           2.恢復程式B的現場

              即從程式B的PCB中獲取其執行資訊,將這些資訊寫入到相應的暫存器,程式計數器等中。

       2.程式概念的引入

          在早期的計算機系統中,程式的執行是分道進行的,每次只能執行一道程式,即記憶體中一次只能裝入

    一道程式。因此每執行一個程式,系統中的所有資源都被該程式佔用,即其控制了作業系統的所有資源。

   在現代計算機系統中,記憶體中通常可同時存放多道程式,程式在計算機系統中併發執行,為了描述程式並

   發執行的特徵,引入了程式的概念。

   概括來說,為了提高系統資源利用率(CPU,記憶體等是不是得到充分利用)和吞吐量(單位時間內CPU能處理

   的作業的個數),讓多個程式併發執行,為了區分這些併發執行的程式及便於協調管理,引入了程式的概念

   程式是獨立申請資源的基本單位。

   一句話,為了讓CPU能同時執行多個程式,引入程式的概念

       3.執行緒是什麼

       執行緒(thread, 臺灣稱 執行緒)是"程式"中某個單一順序的控制流。也被稱為輕量程式(lightweight pro

    cesses)。電腦科學術語,指執行中的程式的基本排程單位。

    資源擁有者仍然是程式。

       4.執行緒概念的引入

         同引入程式的概念類似,引入執行緒的目的是讓一個程式能同時執行多個控制流或多個程式。

         如下圖表示單程式中的單執行緒和單程式中的多執行緒

        

        

          5.引入執行緒的好處

            1.建立一個新執行緒花費少

            2.切換執行緒花費少,如果兩個執行緒同屬於一個程式的話,共享記憶體和檔案

         

      

相關文章