程序、執行緒、協程對比
請仔細理解如下的通俗描述
在這條生產線上多招些工人,一起來做剪子,這樣效率是成倍増長,即單程序 多執行緒方式
老闆發現這條生產線上的工人不是越多越好,因為一條生產線的資源以及材料畢竟有限,所以老闆又花了些財力物力購置了另外一條生產線,然後再招些工人這樣效率又再一步提高了,即多程序 多執行緒方式
老闆發現,現在已經有了很多條生產線,並且每條生產線上已經有很多任務人了(即程式是多程序的,每個程序中又有多個執行緒),為了再次提高效率,老闆想了個損招,規定:如果某個員工在上班時臨時沒事或者再等待某些條件(比如等待另乙個工人生產完謀道工序 之後他才能再次工作) ,那麼這個員工就利用這個時間去做其它的事情,那麼也就是說:如果乙個執行緒等待某些條件,可以充分利用這個時間去做其它事情,其實這就是:協程方式
簡單總結
程序是作業系統資源分配的最小單位
執行緒是cpu排程的單位
程序切換需要的資源最大,效率很低
執行緒切換需要的資源一般,效率一般(當然在不考慮gil的情況下)
協程切換任務資源很小,效率高
多程序、多執行緒根據cpu核數不一樣可能是並行的,但是協程是在乙個執行緒中 所以是併發
程序,執行緒和協程
程序 process 和執行緒 thread 是程式設計師必需掌握的核心知識。而多程序和多執行緒程式設計對於 的並行併發執行,提公升 效率和縮短執行時間至關重要。簡單總結 程序是資源分配的單位 執行緒是作業系統排程的單位 程序切換需要的資源很最大,效率很低 執行緒切換需要的資源一般,效率一般 當然了...
Python的執行緒 程序和協程
程序 乙個程序就是乙個正在執行的程式,它是計cpu分配資源的最小單位。每個程序都有自己獨立的記憶體空間。能同時執行的程序數最多不超過核心數,也就是每個核心 同一時刻只能執行乙個程序。那麼多程序就是能 同時 執行多個程序 比如同時聽 和寫 這裡的 同時 可以指cpu通過極快地在程序間來回切換來實現,所...
Python之執行緒 程序和協程
一 執行緒概念 執行緒 英語 thread 是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務。二 python中線程的使用 usr bin env python c...