併發程式設計專欄系列部落格
併發程式設計(一)python併發程式設計簡介
併發程式設計(二)怎樣選擇多執行緒多程序和多協程
併發程式設計(三)python程式設計慢的罪魁禍首。全域性直譯器鎖gil
併發程式設計(四)如何使用多執行緒,使用多執行緒對爬蟲程式進行修改及比較
併發程式設計(五)python實現生產者消費者模式多執行緒爬蟲
併發程式設計(六)執行緒安全問題以及lock解決方案
併發程式設計(七)好用的執行緒池threadpoolexecutor
併發程式設計(八)在web服務中使用執行緒池加速
併發程式設計(九)使用多程序multiprocessing加速程式執行
併發程式設計(十)在flask服務中使用程序池加速
併發程式設計(十一)python非同步io實現併發程式設計
cpu密集型計算、io密集型計算
在了解以上三者對比之前,我們先來了解一下什麼是cpu密集型計算、io密集型計算
io密集型計算(io-bound):
多執行緒thread(threading):
適用於:io密集型計算、同時執行的任務數目要求不多。
多協程coroutine(asyncio)
乙個程序中可以啟動多個執行緒
乙個執行緒中國也可以啟動多個協程
如果以上三個方面綜合考慮結果為是就可以選擇使用多協程。
否則的話,如果以上三種方面綜合考慮是否的話,就推薦使用多執行緒。
併發程式設計(九) 多執行緒與多程序
本小節就乙個要求 掌握在乙個程序下開啟多個子程序與在乙個程序下開啟多個執行緒的區別 開始操作 from threading import thread def work print hello if name main for i in range 10 t thread target work t...
多程序多執行緒的選擇
關於多程序和多執行緒,教科書上最經典的一句話是 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。經常在網路上看到有的xdjm問 多程序好還是多執行緒好?linux下用多程序還是多執行緒?...
多程序多執行緒的選擇
程序是作業系統分配資源 cpu時間 記憶體 的基本單位,執行緒是排程執行的基本單元。乙個執行緒必定屬於乙個程序,乙個程序可包含多個執行緒。nginx redis是常見的多程序模型,tomcat memcached是多執行緒模型。多程序資料共享複雜,需要用管道,訊號,訊息佇列,共享記憶體,套接字等通訊...