程式設計開發執行緒程序和協程解析

2022-09-23 15:18:11 字數 604 閱讀 8545

程式設計開發執行緒程序和協程解析。

1程序:

優點:提高效率,利用cpu多核優勢

開啟個數:理論上是cpu核心數的1-2倍

描述:一段程式或者指令碼的執行,cpu資源分配的最小單元

缺點:資源消耗非常大,程序過多,cpu切換程序也消耗資源,資源共享困難

使用場景:cpu密集型應用(計算密集型)

2執行緒:

優點:提高效率,資源共享

開啟個數:跟計算硬體有關係,跟應用場景有關係,一半高於可開啟程序數

描述:程序下可以開啟多個執行緒,cpu排程的最小單元

缺點:開啟個數也不是無限的,如果開啟過多,造成程序癱瘓

使用場景:io密集型應用程式

3協程:

描述:執行緒是系統級別的,它們是由作業系統排程;協程是程式級別的,屬於微執行緒,由程式設計師根據需要自己排程。我們把乙個執行緒中的乙個個函式叫做子程式,那麼子程式在執行過程中可以中斷去執行別的子程式;別的子程式也可以中斷回來繼續執行之前的子程式,這就是協程

優點:無需執行緒上下文切換的開銷,無需原子操作鎖定及同步的開銷

方便切換控制流,簡化程式設計模型;高併發高擴充套件性和低成本

缺點:無法利用多核資源,進行阻塞操作會阻塞掉整個程式

程序,執行緒和協程

程序 process 和執行緒 thread 是程式設計師必需掌握的核心知識。而多程序和多執行緒程式設計對於 的並行併發執行,提公升 效率和縮短執行時間至關重要。簡單總結 程序是資源分配的單位 執行緒是作業系統排程的單位 程序切換需要的資源很最大,效率很低 執行緒切換需要的資源一般,效率一般 當然了...

程序 執行緒和協程的區別

這是我的第一篇部落格,文章如有不足之處,請各位大神多多指教!執行緒和程序的操作是由程式觸發系統介面,最後的執行者是系統 協程的操作則是程式設計師。切換開銷 即排程和切換的時間 程序 執行緒 協程 程序和執行緒的區別 概要 計算密集型 cpu bound 適合多程序,而多執行緒是雞肋 和i o密集型 ...

Python的執行緒 程序和協程

程序 乙個程序就是乙個正在執行的程式,它是計cpu分配資源的最小單位。每個程序都有自己獨立的記憶體空間。能同時執行的程序數最多不超過核心數,也就是每個核心 同一時刻只能執行乙個程序。那麼多程序就是能 同時 執行多個程序 比如同時聽 和寫 這裡的 同時 可以指cpu通過極快地在程序間來回切換來實現,所...