什麼是Python全域性直譯器鎖(GIL)?全域性直譯器鎖的好處!
全域性直譯器鎖是計算機程式設計語言直譯器用於同步執行緒的工具,使得在同一程式內任何時刻僅有一個執行緒在執行,常見的有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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python GIL(全域性直譯器鎖)Python
- Python培訓教程:什麼是Python全域性直譯器鎖(GIL)?Python
- Python與全域性直譯器鎖Python
- python之GIL全域性直譯器鎖,自定義互斥鎖,死鎖與遞迴鎖Python遞迴
- Python提高:關於GIL(全域性直譯器鎖)與執行緒互斥鎖的理解Python執行緒
- Python 新提案:“廢除”全域性直譯器鎖 GIL | CPython 直譯器或許會變得更快Python
- python GIL 全域性鎖Python
- C++呼叫PythonAPI執行緒狀態和全域性直譯器鎖C++PythonAPI執行緒
- 你是否真的瞭解全域性解析鎖(GIL)
- 全域性鎖、表鎖、行鎖
- Gil全域性解釋鎖和執行緒互斥鎖的關係執行緒
- 全域性鎖和表鎖
- 什麼是程式語言,什麼是Python直譯器Python
- MySQL 全域性鎖和表鎖MySql
- MySQL全域性鎖、表鎖以及行鎖MySql
- MySQL鎖問題分析-全域性讀鎖MySql
- python直譯器在哪Python
- 什麼是Python直譯器?和Python IDE有什麼區別?PythonIDE
- MySQL 全域性表和表鎖MySql
- MySQL學習之全域性鎖和表鎖MySql
- 直譯器模式模式
- python直譯器的安裝Python
- Python3 直譯器Python
- 【許曉笛】EOS 新增的 WebAssembly 直譯器,是什麼鬼?Web
- Python直譯器有幾種Python
- Python直譯器和IPythonPython
- 【譯】使用 Python 編寫虛擬機器直譯器Python虛擬機
- Ipython 直譯器Python
- 終:直譯器模式模式
- RAC全域性死鎖檢測時間
- Java虛擬機器(JVM)和Python直譯器有什麼區別?Java虛擬機JVMPython
- 關於Basic程式直譯器及編譯原理的簡單化(2)---C++封裝好的Basic直譯器 (轉)C程式編譯原理C++封裝
- 用 Python 實現 Python 直譯器Python
- Python直譯器分類有哪些?Python
- Python設計模式-直譯器模式Python設計模式
- Python指南(1.1):挑選直譯器Python
- VScode和python直譯器VSCodePython
- 超全域性陣列有哪些?超全域性陣列有什麼作用?陣列