【總結】Python多線程
- 備注
- 一、基本概念
- 二、
備注
2025/08/15 星期五
最近用到了python的多線程發現和其他語言有點不同記錄一下
一、基本概念
首先要理解一下線程、進程和協程的概念
線程(Thread):是計算機能夠調度的最小計算單位
進程(Process):是正在運行的程序,擁有獨立的內存空間
協程(Coroutine):是由編程語言在用戶態顯式調度的輕量級調度機制,不經過操作系統內核的調度
再來看一下我們編程中最常遇到的問題,就是當程序進行一個耗時任務時,程序就不能進行其他任務了,這就有了并發的概念
并發(Concurrency):是在同一時間內具有處理多個任務的能力
并發是一種能力,要想實現并發有兩種思路:
并行(Parallelism):是同一時間同時執行多個任務,如:多進程和多線程
異步(Asynchronous):是發起一個耗時任務后,??不阻塞執行流程等待結果返回??,繼續執行其他操作,如:??回調、協程
(類似的在硬件層面,操作系統可以通過CPU單核的分時復用或者CPU多核的并行來實現并發。分時復用與異步有相似之處但不相比)
并發的應用場景主要有兩類:
CPU密集型:需要把一個大型計算任務拆分成多個小任務??同時??計算,優先采用并行思路,場景一般是科學計算、多媒體處理、機器學習、數據分析、密碼學運算、項目編譯
IO密集型:不因等待網絡、磁盤等的I/O操作而空閑阻塞,優先采用異步思路,場景一般是Web服務的API接口、實時通信、數據爬蟲、服務間通信