什麼是Python全域性直譯器鎖(GIL)?全域性直譯器鎖的好處!

老男孩IT教育機構發表於2021-12-13

  全域性直譯器鎖是計算機程式設計語言直譯器用於同步執行緒的工具,使得在同一程式內任何時刻僅有一個執行緒在執行,常見的有CPython、Ruby MRI。那麼什麼是Python全域性直譯器鎖(GIL)?以下是詳細的內容介紹。

  什麼是Python全域性直譯器鎖(GIL)?

  每個CPU在同一時間只能執行一個執行緒,那麼其他的執行緒就必須等待該執行緒的全域性直譯器,使用權消失後才能使用全域性直譯器,即使多個執行緒直接不會相互影響在同一個程式下也只有一個執行緒使用CPU,這樣的機制稱為全域性直譯器鎖(GIL)。GIL的設計簡化了CPython的實現,使得物件模型包括關鍵的內建型別,如:字典等,都是隱含的,可以併發訪問的,鎖住全域性直譯器使得比較容易的實現對多執行緒的支援,但也損失了多處理器主機的平行計算能力。

  Python全域性直譯器鎖(GIL)是一種互斥鎖或鎖,僅允許一個執行緒持有Python直譯器的控制權。

  全域性直譯器鎖的好處

  1、避免了大量的加鎖解鎖的好處;

  2、使資料更加安全,解決多執行緒間的資料完整性和狀態同步。

  全域性直譯器鎖的劣勢

  多核處理器退化成單核處理器,只能併發不能並行。

  Python全域性直譯器鎖(GIL)的作用

  多執行緒情況下必須存在資源的競爭,GIL是為了保證在直譯器級別的執行緒唯一使用共享資源(cpu)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2847470/,如需轉載,請註明出處,否則將追究法律責任。

相關文章