Python 3.13 距離解除 GIL 封印又更近一步了!
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
Python 3.13 預計加入 1 項稱為 “free-threaded” 的實驗功能,這項功能可以將 global interpreter lock (GIL) 限制解除,讓 Python 多執行緒能夠更有效率地使用多核心 CPU 的多核運算能力,從而釋放更多 Python 效能!
p.s. 如果你的 CPU 是 1 core CPU, 那解除 GIL 也無法帶來什麼效益⋯⋯
不過 “free-threaded” 仍處於實驗階段,預設不會有 “free-threaded” 可以使用,必須在編譯 Python 3.13 時加入編譯參數 --disable-gil
才能將此功能啟用。
編譯成功之後也還是可以透過環境變數 PYTHON_GIL
或參數 -X gil
啟用 GIL ,設定值 1 代表使用 GIL, 反之則為 0 。
如果想在 Python 程式中檢查 GIL 是否已經被停用的話,可以使用以下 Python 程式碼檢查:
sysconfig.get_config_var("Py_GIL_DISABLED")
回傳值若為 None
則代表你的 Python 版本不支援 “free-threaded” 。