出品 | OSC開源社區(ID:oschina2013)
CPython/ target=_blank class=infotextkey>Python 核心開發者 Thomas Wouters 今日代表 Python 指導委員會宣布了關于 PEP 703 提案(在 CPython 中使全局解釋器鎖成為可選)的最新進展。
他表示,從社區對 no-GIL 提案的民意調查結果來看,整體是積極的支持態度。因此 Python 指導委員會計劃接受 PEP 703 提案,目前正在研究相關細節。
Thomas Wouters 介紹了指導委員會的預期想法:
- 從長遠來看(可能 5 年以上), no-GIL 構建應該是唯一的構建 。他們不希望在出現 GIL 和 no-GIL 構建(以及擴展模塊)之間創建永久的區分
- 保持向后兼容, 避免出現另一種 Python 3 的情況
- 承諾完全切換到 no-GIL 構建之前,需要看到社區對其的支持
基于此,他們的開發方向分為三個階段:
- 短期內,將 no-GIL 構建添加為 實驗性構建模式 ,大概是在 Python 3.13 提供
- 從中期來看,當確信有足夠的社區支持來使 no-GIL 的生產使用可行后,他們會支持 no-GIL 構建,但不是默認
- 從長遠來看,他們希望 no-GIL 成為默認值,并刪除 GIL 的任何痕跡(不會不必要地破壞向后兼容性)
PEP 703 提案建議向 CPython 添加構建配置 (--disable-gil),使其在沒有全局解釋器鎖的情況下運行 Python 代碼,并進行必要的更改以保證解釋器線程安全。
根據提案的描述,CPython 的全局解釋器鎖 (GIL) 阻止了同時多線程執行代碼,成為了在多核 CPU 上提高 Python 代碼運行效率的一大障礙。
相關鏈接: https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474