目錄
- 1. 行程和執行緒的概念
- 2. 并發和并行的概念
- 3. 異步和同步的概念
1. 行程和執行緒的概念
行程:
- 系統正在運行的一個應用程式;程式一旦運行就是一個行程;行程是資源分配的最小單位
執行緒:
- 是行程的實際運行單位;一個人行程可以并發控制多個執行緒,每條執行緒并行執行不同的任務
區別:
- 行程基本上相互獨立的;而執行緒存在于行程內,是行程的一個子集
- 行程擁有共享的資源,如記憶體空間等,供其內部的執行緒共享
- 行程間通信較為復雜(同一臺計算機的行程通信稱為 IPC,不同計算機之間的行程通信,需要通過網路,并遵守共同的協議,例如 HTTP)
- 執行緒通信相對簡單,因為它們共享行程內的記憶體,一個例子是多個執行緒可以訪問同一個共享變數
- 執行緒更輕量,執行緒背景關系切換成本一般上要比行程背景關系切換低
2. 并發和并行的概念
并發:
- 兩個或多個事件在同一時間間隔發生
- 例: 家庭主婦做飯、打掃衛生、給孩子喂奶,她一個人輪流交替做這多件事,這時就是并發

并行:
- 并行是指兩個或者多個事件在同一時刻發生
- 例: 家庭主婦雇了個保姆,她們一起做這些事,這時既有并發,也有并行(這時會產生競爭,例如鍋只有一口,一個人用鍋時,另一個人就得等待)雇了3個保姆,一個專做飯、一個專打掃衛生、一個專喂奶,互不干擾,這時是并行

3. 異步和同步的概念
同步:
- 需要等待結果回傳,才能繼續運行就是同步
異步:
- 不需要等待結果回傳,就能繼續運行就是異步
總結
- 單核 cpu 下,多執行緒不能實際提高程式運行效率,只是為了能夠在不同的任務之間切換,不同執行緒輪流使用cpu ,不至于一個執行緒總占用 cpu,別的執行緒沒法干活
- 多核 cpu 可以并行跑多個執行緒,但能否提高程式運行效率還是要分情況的
- IO 操作不占用 cpu,但是會堵塞執行緒; 只是我們一般拷貝檔案使用的是【阻塞 IO】,這時相當于執行緒雖然不用 cpu,但需要一直等待 IO 結束,沒能充分利用執行緒,所以才有后面的【非阻塞 IO】和【異步 IO】優化JUC并發編程第二章之CompletableFuture[加強版的執行緒]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549387.html
標籤:其他
上一篇:IO流中「執行緒」模型總結
