1. 程式人生 > >GIL鎖和執行緒鎖

GIL鎖和執行緒鎖

GIL鎖(Global Interpreter Lock):CPython才會有(是這種直譯器的歷史遺留問題),Python程式執行前,先獲得GIL鎖,然後每執行100個指令,直譯器就自動釋放GIL鎖,讓別的執行緒執行。所以,多執行緒在Python中只能交替執行,同一時間只有一個執行緒在執行。

Python多執行緒一般應用於IO密集型程式,不適合用於CPU密集型(以計算為主)程式,因為執行緒之間的上下文切換也需要時間。如下面例子,多執行緒不如單執行緒效率高: