1. 程式人生 > >程序執行緒的概念與區別

程序執行緒的概念與區別

1.多工程式設計

意義: 充分利用計算機的資源提高程式的執行效率

定義: 通過應用程式利用計算機多個核心,達到同時執行多個任務的目的

實施方案: 多程序   多執行緒

多程序

優點 : 能並行執行多個任務,提高效率 建立方便,執行獨立,不受其他程序影響 資料安全 缺點 : 程序的建立和刪除都需要消耗計算機的資源

並行: 多個計算機核心在同時處理多個任務,多個任務之間是並行關係

併發: 計算機同時處理多個任務,核心在多個任務間不斷切換,達到好像在同時處理的執行效果。

多執行緒: 多執行緒是為了使得多個執行緒並行的工作以完成多項任務,以提高系統的效率。執行緒是在同一時間需要完成多項任務的時候被實現的

程序池技術 產生原因 : 如果有大量任務需要多程序完成,且可能需要頻繁的建立和刪除程序,給計算機帶來大量的資源消耗。

原理 : 在程序池內執行一定數量程序,通過這些程序完成程序池佇列中的事件,直到事件執行完畢,減少程序不斷的建立刪除過程。

2.執行緒與程序

1.概念 執行緒:是程式執行流的最小單元,是系統獨立排程和分配CPU(獨立執行)的基本單位。 程序:是資源分配的基本單位。一個程序包括多個執行緒。 2.區別: 1.執行緒與資源分配無關,它屬於某一個程序,並與程序內的其他執行緒一起共享程序的資源。 2.每個程序都有自己一套獨立的資源(資料),供其內的所有執行緒共享。 3.不論是大小,開銷執行緒要更“輕量級” 4.一個程序內的執行緒通訊比程序之間的通訊更快速,有效。(因為共享變數)

3.多執行緒與多程序

多執行緒:同一時刻執行多個執行緒。用瀏覽器一邊下載,一邊聽歌,一邊看視訊,一邊看網頁。。。 多程序:同時執行多個程式。如,同事執行YY,QQ,以及各種瀏覽器。

4.併發與並行

併發當有多個執行緒在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的執行緒,它只能把CPU執行時間劃分成若干個時間段,再將時間 段分配給各個執行緒執行,在一個時間段的執行緒程式碼執行時,其它執行緒處於掛起狀。.這種方式我們稱之為併發(Concurrent)。

並行:當系統有一個以上CPU時,則執行緒的操作有可能非併發。當一個CPU執行一個執行緒時,另一個CPU可以執行另一個執行緒,兩個執行緒互不搶佔CPU資源,可以同時進行,這種方式我們稱之為並行(Parallel)。

5.同步互斥機制

目的 : 解決對共有資源操作產生的爭奪

臨界資源 : 多個程序或者執行緒都能夠操作的資源 臨界區 : 操作臨界資源的程式碼段

同步 : 是一種合作關係,為完成某個任務,多程序或者多執行緒之間形成一種協調。按照約定依次執行對臨界資源的操作,相互告知相互促進。

互斥 : 互斥是一種制約關係,當一個程序佔有臨界資源就會進行加鎖的操作,此時其他程序就無法操作該臨界資源。知道使用的程序進行解鎖操作後才能使用。