執行緒和程式的優缺點

hongmingover發表於2018-09-19

1、        什麼是程式?

答案:程式其實就是一個靜態的概念。在機器上實際上執行的都是執行緒(執行緒,程式的一部分。)

2、        什麼是執行緒?

答案:執行緒是一個程式內部的順序控制流。一個程式裡面有一個主方法叫main方法。是一個程式裡面不同的執行路徑。

3、        什麼時候會用到執行緒?

答案:當系統中或者開發中。遇到高併發    並行的情況下為了解決負載均衡的問題,就會使用到執行緒。執行緒可以提高cpu的利用率。

4、        在一個時間點上。Cpu只能支援一個執行緒的執行(由於windows在一個程式中將多個執行緒執行速度非常的快。所以好多人認為是那是多執行緒。其實在同一個時間點上只有一個執行緒在執行)。

5、        注意:真正的多執行緒就是當你的機器為雙cpu或者是雙核的。那麼這個時候確實是真正的多執行緒在執行。

 

 

為了解決負載均衡問題,充分利用CPU資源.為了提高CPU的使用率,採用多執行緒的方式去同時完成幾件事情而不互相干擾.為了處理大量的IO操作時或處理的情況需要花費大量的時間等等,比如:讀寫檔案,視訊影象的採集,處理,顯示,儲存等

多執行緒的好處:

1.使用執行緒可以把佔據時間長的程式中的任務放到後臺去處理

2.使用者介面更加吸引人,這樣比如使用者點選了一個按鈕去觸發某件事件的處理,可以彈出一個進度條來顯示處理的進度

3.程式的執行效率可能會提高

4.在一些等待的任務實現上如使用者輸入,檔案讀取和網路收發資料等,執行緒就比較有用了.

多執行緒的缺點:

1.如果有大量的執行緒,會影響效能,因為作業系統需要在它們之間切換.

2.更多的執行緒需要更多的記憶體空間

3.執行緒中止需要考慮對程式執行的影響.

4.通常塊模型資料是在多個執行緒間共享的,需要防止執行緒死鎖情況的發生

 

 

多執行緒優點:

無需跨程式邊界; 
程式邏輯和控制方式簡單; 
所有執行緒可以直接共享記憶體和變數; 
執行緒方式消耗的總資源比程式方式好;

多執行緒缺點:

每個執行緒與主程式共用地址空間,受限於2GB地址空間; 
執行緒之間的同步和加鎖控制比較麻煩; 
一個執行緒的崩潰可能影響到整個程式的穩定性; 
到達一定的執行緒數程度後,即使再增加CPU也無法提高效能; 
執行緒能夠提高的總效能有限,而且執行緒多了之後,執行緒本身的排程也是一個麻煩事兒,需要消耗較多的CPU

多程式優點:

每個程式互相獨立,不影響主程式的穩定性,子程式崩潰沒關係; 
通過增加CPU,就可以容易擴充效能; 
可以儘量減少執行緒加鎖/解鎖的影響,極大提高效能,就算是執行緒執行的模組演算法效率低也沒關係; 
每個子程式都有2GB地址空間和相關資源,總體能夠達到的效能上限非常大

多執行緒缺點:

邏輯控制複雜,需要和主程式互動; 
需要跨程式邊界,如果有大資料量傳送,就不太好,適合小資料量傳送、密集運算 
多程式排程開銷比較大;

 

 

相關文章