老男孩教育每日一題-2017年3月23日-請問多執行緒與多程式的區別,在什麼時候用執行緒或程式更合適?
解答:
程式:
優點:多程式可以同時利用多個CPU,能夠同時進行多個操作。
缺點:耗費資源(建立一個程式重新開闢記憶體空間)。
程式不是越多越好,一般程式個數等於cpu個數。
執行緒:
優點:共享記憶體,尤其是進行IO操作(網路、磁碟)的時候(IO操作很少用cpu),可以使用多執行緒執行併發操作。
缺點:搶佔資源。
執行緒也不是越多越好,具體案例具體分析,切換執行緒關係到請求上下文切換耗時。
計算機中執行任務的最小單元:執行緒。
IO密集型(不用cpu):多執行緒
計算密集型(用cpu):多程式
-
網友精品回答:
耶穌的道路2017/03/23 10:50:40
多執行緒和多程式是兩個截然不同的概念。程式是核心分配給一個應用的相對獨立的地址空間,有著自己的堆疊地址,當然是虛擬的,這樣就保護了核心,使核心和應用隔離,個個具體的應用之間隔離,當然他們之間是可以通訊的,這取決於作業系統。
執行緒是我們程式設計師最關注的,也就是我們在具體應用中的功能實現。分為主執行緒和子執行緒,在Android開發中我們稱主執行緒為UI執行緒,在JavaEE和Windows開發中就是main函式等等,既然這樣那麼什麼操作放在主執行緒中,什麼操作放在子執行緒中,大致是這樣,費時的操作和消耗資源也就是佔記憶體的操作放在子執行緒中,更新UI之類的放在主執行緒中,他們之間通過訊息傳遞實現。
像查詢資料庫、聯網上傳檔案啊,斷點續傳和下載大資料檔案啊等等操作都應該放在子執行緒中。
多執行緒的應用雖然提高了CPU的利用率,卻也帶來安全問題。熊掌和魚不可兼得,如何處理效率和安全的問題,真的是考驗一個程式設計師水平的現實問題。
本文轉自 李導 51CTO部落格,原文連結:http://blog.51cto.com/lidao/1914576
相關文章
- 多執行緒程式設計,處理多執行緒的併發問題(執行緒池)執行緒程式設計
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 請問多執行緒程式設計高手semaphore和 buffer 有什麼區別執行緒程式設計
- 多執行緒和多程式的區別(小結)執行緒
- 多執行緒,多程式執行緒
- Java多執行緒1:程式與執行緒概述Java執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- 如何解決多程式或多執行緒併發的問題執行緒
- 多執行緒-程式和執行緒的概述執行緒
- 請教一個多執行緒的問題執行緒
- 執行緒與多執行緒執行緒
- PHP 的多程式與執行緒PHP執行緒
- redis為什麼用單執行緒不用多執行緒Redis執行緒
- 【Python】 多程式與多執行緒Python執行緒
- 程式設計思想之多執行緒與多程式(3):Java 中的多執行緒程式設計執行緒Java
- 多執行緒問題執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- 程式與執行緒區別執行緒
- 多執行緒下的程式同步(執行緒同步問題總結篇)執行緒
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- java多執行緒執行問題Java執行緒
- pytest(13)-多執行緒、多程式執行用例執行緒
- 程式與執行緒的區別執行緒
- Python——程式、執行緒、協程、多程式、多執行緒(個人向)Python執行緒
- 程式設計思想之多執行緒與多程式(4):C++ 中的多執行緒程式設計執行緒C++
- Java多執行緒001——一圖讀懂執行緒與程式Java執行緒
- 多執行緒-多執行緒常見的面試題執行緒面試題
- Java多執行緒面試高配問題---多執行緒(3)🧵Java執行緒面試
- 什麼是多執行緒?Python多執行緒有什麼優勢?執行緒Python
- 多執行緒程式設計基礎(一)-- 執行緒的使用執行緒程式設計
- pytest多程式/多執行緒執行測試用例執行緒
- [譯] Python 的多執行緒與多程式Python執行緒
- 多執行緒和多程式模型的選用執行緒模型
- 程式執行緒新解:什麼是程式?什麼是執行緒?執行緒
- 作業系統——執行緒與程式的區別與聯絡?什麼是執行緒安全?作業系統執行緒
- Python 多執行緒多程式Python執行緒
- 多執行緒與高併發(一)多執行緒入門執行緒
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒