Python中的程序執行緒協程對比

2021-10-07 11:49:49 字數 375 閱讀 3995

程序執行緒協程對比:

程序是資源分配的單位

執行緒是作業系統排程的單位

程序切換需要的資源很大,效率很低

執行緒切換需要的資源一般,效率一般(不考慮gil)

協程切換需要的任務資源很小,切換效率高

多程序,多執行緒根據cpu核數不一樣可能是並行的,但是協程是在乙個執行緒中 所以是併發

一段程式必有乙個主程序,乙個主線程

奇妙比喻:

一條流水線及其生產資料為乙個程序

流水線上的工人為單個執行緒

給閒時的工人分配新的任務, 這個概念就是協程(gevent)

多程序:多條流水線(multiprocessing)

多執行緒:一條流水線上的多個工人 (threading)

Python 程序 執行緒 協程

程序和執行緒之間的關係 執行緒是屬於程序的,執行緒執行在程序空間內,同一程序所產生的執行緒共享同一記憶體空間,當程序退出時該程序所產生的執行緒都會被強制退出並清除。執行緒可與屬於同一程序的其它執行緒共享程序所擁有的全部資源,但是其本身基本上不擁有系統資源,只擁有一點在執行中必不可少的資訊 如程式計數...

Python 程序,執行緒, 協程

程序是系統進行資源分配和排程的乙個獨立單位 最小單位 程序的幾個狀態 空 新建 建立執行乙個程式的新程序,可能的事件有 新的批處理作業 互動登入 終端使用者登入到系統 作業系統因為提供一項服務而建立 由現有的程序派生等。新建 就緒 作業系統準備好再接納乙個程序時,把乙個程序從新建態轉換為就緒態。就緒...

Python的程序 執行緒 協程

作業系統處理任務,排程單位是程序和執行緒。程序 表示乙個程式的執行活動 開啟程式 讀寫程式資料 關閉程式 執行緒 執行某個程式時,該程序排程的最小執行單位 執行功能1,執行功能2 乙個程式至少有乙個程序,乙個程序至少有乙個執行緒。並行 需要處理的任務數 cpu核心數量 兩個任務,兩個核心 任務1 任...