Linux系列 多程序 多執行緒與CPU的關係

2021-10-09 05:58:50 字數 283 閱讀 3547

對於多cpu,多個程序可以並行在多個cpu中計算,當然也會存在程序切換;

對於單cpu,多個程序在這個單cpu中是併發執行,根據時間片讀取上下文+執行程式+儲存上下文。同乙個程序同一時間段只能在乙個cpu中執行,如果程序數小於cpu數,那麼未使用的cpu將會空閒。

對於多核cpu,程序中的多執行緒並行執行。

對於單核cpu,多執行緒在單cpu中併發執行,根據時間片切換執行緒。同乙個執行緒同一時間段只能在乙個cpu核心中執行,如果執行緒數小於cpu核心數,那麼將有多餘的核心空閒。

>> 併發與並行的區別

多執行緒與多程序

程序 程序是程式的一次執行,在傳統的計算機中,程序既是基本的分配單元,也是基本的執行單元。執行緒 執行緒是可執行的實體單元,它是處理機排程的基本單位。由於執行緒在同一位址空間,因此建立和撤銷執行緒的開銷小,執行緒間的通訊效率高,切換迅速。在多處理機系統中,對程序的個數有所限制,但對執行緒的個數不存在...

多執行緒與多程序

魚還是熊掌 多程序多執行緒的選擇 關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?...

多程序與多執行緒

import threading建立乙個執行緒,指向的函式,不接收引數的情況 t threading.thread target 函式名 建立乙個執行緒,指向的函式,收引數的情況 t threading.thread target 函式名,args 實參1,執行緒物件名.start 生命週期 我們的...