1. 程式人生 > >python 同步異步,並發並行,同步鎖

python 同步異步,並發並行,同步鎖

線程 垃圾 lease 多個 運行 gil 數據 機制 lock

並發:系統具有處理多個任務(動作)的能力

並行:系統具有同時處理多個任務(動作)的能力

同步:當進程執行到一個IO(等待外部數據)的時候,需要等待,等待即同步

異步:當進程執行到一個IO(等待外部數據)的時候,不需要等待,待數據接收成功後,再回來處理。

GIL:全局解釋鎖:無論你有多少個線程,你有多少個CPU,Python在執行的時候會淡定的在同一時刻只允許一個線程運行。(解釋器層面保護進程安全)

GIL的作用:同一時刻,只有一個線程被CPU在執行,造成單線程運行結果,多核用不到。

垃圾回收機制:解釋器的一個線程在進行垃圾回收。

CPU切換:io阻塞、cpu執行時間窗口等

線程都是競爭CPU資源來獲得執行。

任務:io密集型(io交互多,CPU空閑時間多)、計算密集型(),time.sleep()等同於io操作

對於io密集型任務,python的多線程是有意義的,而計算密集型任務,python的多線程就不適用了,可以采用多進程。

同步鎖:即將線程設置成串行,lock=threading.lock(),lock.acquire(),lock.release()

python 同步異步,並發並行,同步鎖