執行緒和程式的優缺點
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地址空間和相關資源,總體能夠達到的效能上限非常大
多執行緒缺點:
邏輯控制複雜,需要和主程式互動;
需要跨程式邊界,如果有大資料量傳送,就不太好,適合小資料量傳送、密集運算
多程式排程開銷比較大;
相關文章
- 1 多執行緒的優缺點執行緒
- python多執行緒的優缺點總結Python執行緒
- 執行緒和程式有什麼優缺點?Linux運維學習執行緒Linux運維
- Linux系統中多程式和多執行緒的優缺點及聯絡!Linux執行緒
- 多執行緒-程式和執行緒的概述執行緒
- 和程式設計師約會的優點和缺點程式設計師
- 繼承的優點和缺點繼承
- 程式和執行緒執行緒
- 執行緒和程式執行緒
- 使用執行緒池優化多執行緒程式設計執行緒優化程式設計
- mysql和Oracle的特點,優缺點MySqlOracle
- 程式和執行緒模型執行緒模型
- 程式和執行緒理解執行緒
- 幾種主流程式語言的優點和缺點
- 執行緒和程式的區別執行緒
- 程式和執行緒的區別執行緒
- HTTP和RPC的優缺點HTTPRPC
- Java 多執行緒基礎(十一)執行緒優先順序和守護執行緒Java執行緒
- iframe有哪些優點和缺點?
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒
- 多執行緒-執行緒排程及獲取和設定執行緒優先順序執行緒
- 執行緒和執行緒池執行緒
- Bash 和 Python 程式語言優缺點分析Python
- 執行緒和程式基礎以及多執行緒的基本使用(iOS)執行緒iOS
- C# 執行緒查漏補缺C#執行緒
- 程式和執行緒簡介執行緒
- android程式和執行緒Android執行緒
- Java™ 教程(程式和執行緒)Java執行緒
- 程式和執行緒相關執行緒
- 認識程式和執行緒執行緒
- 漫談程式和執行緒執行緒
- Android 程式和執行緒Android執行緒
- Android的執行緒和執行緒池Android執行緒
- 程式、執行緒和協程的概念執行緒
- Node.js的執行緒和程式Node.js執行緒
- 併發程式設計的優缺點程式設計
- 幾種程式語言的優缺點
- 如何優雅的使用和理解執行緒池執行緒