1. 程式人生 > >python GIL鎖

python GIL鎖

可能 但是 變量 都是 gil 調用 python 因此 -1

GIL鎖 全局解釋器鎖

無論cpu是多少核的,python同一時間執行的線程只有一個,但是給我們的感覺是並發的?因為python在不斷的進行上下文的切換。

python的線程是調用操作系統的原生線程。因為調用的是c的接口。當Python要調用這個線程去執行任務的時候,cpu要知道上下文,所以要把上下文關系傳給cpu。

技術分享

要求是起4個線程,每起一個線程num+1 。因為每個線程都是獨立並行執行的,所以他們得到的num都是等於1,那麽返回的結果都是2。他們計算的時候也是並行的不是串行的。

可能每個線程分到不同的cpu內核上,但是同一時間只有一個在執行。避免數據出錯,Python加一個全局鎖,同一時間,只有一個線程能拿到這個數據。去修改。

因為在多線程中,所有變量都由所有線程共享,所以,任何一個變量都可以被任何一個線程修改,因此,線程之間共享數據最大的危險在於多個線程同時改一個變量,把內容給改亂了。

python GIL鎖