Python中的GIL(全局解释器锁)
生活随笔
收集整理的這篇文章主要介紹了
Python中的GIL(全局解释器锁)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. GIL全稱Global Interpreter Lock,每個線程在執行的過程都需要先獲取GIL,保證同一時刻只有一個線程可以執行代碼。
2.GIL的缺點
? ? ? GIL使Python不能充分利用多核心CPU資源
? ? ? ? GIL會使Python代碼? ? 不管CPU有多少個核,也不管開了多個線程,但是同一時刻只能在一個核上面執行一個線程
3.Python為什么要有GIL全局解釋器鎖?
? ? 鎖的機制:? 保證對某一個變量j進行相關的操作的時候,同一時刻只有一個線程來執行
? ? ? ? ? ? ? ? ? ? ?只有拿到鎖的線程,才能對變量進行相關的操作
? ? 鎖從語言上區分:
? ? ? ? ?細粒度的鎖:? 在代碼中主動加的鎖??
? ? ? ? ?粗粒度的鎖: 在整個Python的解釋器(cpython)的層面加的鎖,所以粗粒度的解釋器的鎖就是GIL,多核CPU,同一時刻只能執行一個線程 ,在一定程度上保證線程的安全
4. 什么樣的程序該使用進程,什么樣的程序該使用線程?
? ? ? ? 計算密集型程序(非常嚴重的依賴CPU計算):? 使用進程
? ? ? ? IO密集型程序(查詢數據庫、請求網絡資源、讀寫文件): 線程、協程
總結
以上是生活随笔為你收集整理的Python中的GIL(全局解释器锁)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django框架(9.Django中的配
- 下一篇: Pandas的学习(1.pandas的介