自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python 新提案:刪除全局解釋器鎖 GIL,解放多線程性能

開發(fā)
據(jù) Python 基金會(huì)的介紹,Gross 將發(fā)明一種新型鎖,一種 “更吉利” 的鎖。如果順利的話,這個(gè)新鎖很可能在 Python 3.12 版本亮相,因?yàn)?Gross 的提案就是 “在 Python 3.12 中引入一個(gè)新的編譯器標(biāo)志,該標(biāo)志將禁用 GIL?!?/div>

據(jù) Python 基金會(huì)博客介紹,開發(fā)者 Sam Gross 在 2022 Python 語(yǔ)言峰會(huì)上帶來了一個(gè)新提案:完全移除 CPython 解釋器的 GIL- 全局解釋器鎖,使 Python 程序獲得更快的性能 —— 尤其是多線程程序。

Python 有多個(gè)版本,包括 JVM 、 .NET CLR 解釋器以及編譯器,但該語(yǔ)言的核心實(shí)現(xiàn)仍是 CPython 解釋器。由于 CPython 的內(nèi)存管理非線程安全,因此設(shè)計(jì)了 CPython 的 GIL (Global Interpreter Lock - 全局解釋器鎖),以防止競(jìng)爭(zhēng)條件并確保線程安全。 GIL 是一個(gè)互斥鎖,只允許一個(gè)線程持有 Python 解釋器的控制權(quán),從而保護(hù)對(duì) Python 對(duì)象的訪問,防止多個(gè)線程同時(shí)執(zhí)行 Python 字節(jié)碼。

但事后看來,GIL 并不理想,因?yàn)樗柚沽硕嗑€程的 CPython 程序充分利用多核處理器的性能。但由于 GIL 長(zhǎng)期存在,許多官方和非官方 Python 包和模塊都深度融合了 GIL 模塊,移除 GIL 功能的工作變得任重而道遠(yuǎn)。此前,開發(fā)者 Larry Hastings 在其 “Gilectomy” (GIL 切除手術(shù))項(xiàng)目中試圖完成 CPython GIL 功能的移除,但該項(xiàng)目失敗了,因?yàn)樗箚尉€程 Python 代碼顯著變慢。

而此次 Python 語(yǔ)言峰會(huì)帶來了另外一個(gè)項(xiàng)目 “nogil”,該項(xiàng)目由 Meta 開發(fā)人員 Sam Gross 主持,從項(xiàng)目名稱不難看出,這也是一個(gè)專注于移除 GIL 的項(xiàng)目。參考了 Gilectomy 項(xiàng)目的失敗經(jīng)驗(yàn), Sam Gross 意識(shí)到 :如果要使 Python 在沒有 GIL 的情況下有效工作,則需要添加新的鎖,以確保它仍然是線程安全的。然而,向現(xiàn)有代碼添加新鎖可能非常困難,因?yàn)樾碌逆i可能會(huì)導(dǎo)致在部分領(lǐng)域的性能大幅下降。

據(jù) Python 基金會(huì)的介紹,Gross 將發(fā)明一種新型鎖,一種 “更吉利” 的鎖。如果順利的話,這個(gè)新鎖很可能在 Python 3.12 版本亮相,因?yàn)?Gross 的提案就是 “在 Python 3.12 中引入一個(gè)新的編譯器標(biāo)志,該標(biāo)志將禁用 GIL?!?/p>

本文轉(zhuǎn)自O(shè)SCHINA

本文標(biāo)題:Python 新提案:刪除全局解釋器鎖 GIL,解放多線程性能

本文地址:https://www.oschina.net/news/196247/remove-gil-from-cpython

責(zé)任編輯:未麗燕 來源: OSCHINA
相關(guān)推薦

2023-07-31 11:22:29

編程開發(fā)

2024-04-02 09:38:21

PythonGIL

2021-12-12 18:15:06

Python并發(fā)編程

2020-11-09 09:33:37

多線程

2017-10-20 12:00:36

Python全局解釋器鎖GIL

2019-04-18 09:15:05

DaskPython計(jì)算

2023-07-31 12:05:38

GIL全局解釋器鎖

2021-02-20 23:22:04

Python線程語(yǔ)音

2013-06-17 09:54:17

Python程序代碼

2018-10-25 15:55:44

Java多線程鎖優(yōu)化

2009-10-16 10:20:37

Python的GIL

2017-05-26 09:50:19

PythonGIL線程安全

2023-06-09 07:59:37

多線程編程鎖機(jī)制

2017-05-08 11:46:15

Java多線程

2023-07-29 22:15:33

2017-05-31 14:03:07

Java多線程內(nèi)置鎖與顯示鎖

2017-06-30 10:12:46

Python多進(jìn)程

2024-11-19 09:10:19

迭代器Go語(yǔ)言

2024-06-24 08:10:00

C++互斥鎖

2022-03-17 10:31:19

Python標(biāo)準(zhǔn)庫(kù)模塊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)