在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python新提案:使全局解釋器鎖成為可選項

OSC開源社區 ? 來源:OSC開源社區 ? 2023-01-13 15:31 ? 次閱讀

去年的 2022 Python 語言峰會上,開發者 Sam Gross 帶來了新提案:刪除全局解釋器鎖 GIL,解放多線程性能。但由于 GIL 歷史悠久,許多官方 / 非官方的 Python 包和模塊都深度融合了 GIL 模塊,徹底移除 GIL 功能可能會對生態造成影響。在 2023 年 1 月 9 日, Sam Gross 又創建了另一個 Python 提案 PEP 703:使全局解釋器鎖成為構建 Python 的可選項。

f52bcf44-9299-11ed-bfe3-dac502259ad0.png

CPython 的全局解釋器鎖(“GIL”)防止多個線程同時執行 Python 代碼,GIL 是 Python 有效使用多核 CPU 的障礙。

向 CPython 添加一個構建配置 ( --without-gil) ,使其可在沒有全局解釋器鎖的情況下運行 Python 代碼,并進行必要的更改,以使解釋器線程安全。

這條 PEP 提案的內容可謂是論文級別。提案中先闡述了 GIL 對 Python 并發的性能阻礙,隨后詳細分析了抽離 GIL 需要對 Python 內部進行哪些改動:

移除全局解釋器鎖需要對 CPython 內部進行大量更改,但對公共 Python 和 C API 的更改相對較少。

實施的變更大約分為以下四類:

引用計數、內存管理、容器線程安全、鎖和 atomic API

由于該提案內容實在太多,感興趣的朋友請在 PEP 703 詳情頁(https://peps.python.org/pep-0703)和 Cpython 核心開發者對該提案的討論帖(https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional/22606/10)中細閱。

目前此 PEP 已經有了參考實現,它的原型源于當初為了移除 GIL 而開發的 nogil 項目,該原型對單線程代碼帶來較明顯 (~10%) 性能提升。

如果該提案通過,意味著默認情況下 CPython 不會刪除或關閉 GIL,也不會讓用戶有選擇地啟用 / 刪除 GIL。因為--without-gil是一個編譯時標志,可以在從源代碼構建 Python 解釋器時進行設置。但如果棄用該配置,會導致對解釋器的構建和運行方式的深度侵入性更改,PEP 中也對此進行了詳細介紹。

對用戶側來說,該改動意味著如果用戶使用任何帶有編譯擴展的包,將需要獲取或構建一個專門針對 Python 解釋器的(不同的)ABI 編譯的版本,該版本在沒有 GIL 的情況下編譯。

關于 Python GIL

由于 CPython 的內存管理非線程安全,因此設計了 CPython 的 GIL (Global Interpreter Lock - 全局解釋器鎖),以防止競爭條件并確保線程安全。GIL 是一個互斥鎖,只允許一個線程持有 Python 解釋器的控制權,從而保護對 Python 對象的訪問,防止多個線程同時執行 Python 字節碼。

但事后看來,GIL 并不理想,因為它阻止了多線程的 CPython 程序充分利用多核處理器的性能。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84975
  • 解釋器
    +關注

    關注

    0

    文章

    103

    瀏覽量

    6556

原文標題:Python新提案:使全局解釋器鎖成為可選項

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vivado之實現布局布線流程介紹

    流程由一系列的子流程組成,包括:Design Initialization設計初始化、Opt Design設計優化、Power Opt Design功率優化【可選項】、Place Design布局
    的頭像 發表于 12-06 09:08 ?691次閱讀
    Vivado之實現布局布線流程介紹

    D的基本實現

    是由電平觸發的,而觸發則是由邊沿觸發的。這意味著在控制信號(通常是使能信號)為高或低電平時保持數據狀態,而觸發在時鐘信號的上升沿或
    的頭像 發表于 08-30 10:45 ?927次閱讀

    的基本輸出時序

    在深入探討的輸出時序時,我們需要詳細分析在不同控制信號下的行為表現,特別是控制信號(如使能信號E)的電平變化如何影響數據輸入(D
    的頭像 發表于 08-30 10:43 ?681次閱讀

    與觸發的狀態圖是一樣的嗎?為什么?

    與觸發的狀態圖并不完全相同 ,這主要是由于它們的工作原理和觸發機制存在差異。
    的頭像 發表于 08-28 10:20 ?341次閱讀

    怎么根據sr的輸入信息

    在SR中,輸出信息(Q和Q')是根據輸入信息(S和R)來確定的。SR是一種雙穩態電路,它可以保持一個二進制狀態,直到輸入信號改變。以下是根據S和R的輸入信息判斷Q和Q'輸出
    的頭像 發表于 08-28 09:20 ?506次閱讀

    d解決了sr的什么問題

    D(Data Latch)和SR(Set-Reset Latch)是數字電路中常見的兩種存儲元件。它們在數字系統中扮演著重要的角色,用于存儲和傳遞信息。然而,這兩種
    的頭像 發表于 08-28 09:16 ?663次閱讀

    pytorch和python的關系是什么

    ,PyTorch已經成為了一個非常受歡迎的框架。本文將介紹PyTorch和Python之間的關系,以及它們在深度學習領域的應用。 Python簡介 Python是一種高級、
    的頭像 發表于 08-01 15:27 ?2229次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python在多個平臺上
    的頭像 發表于 07-24 10:41 ?643次閱讀

    手機存儲不夠用,“軟NAS”成為新的可選項

    無論是硬件級的NAS解決方案亦或是便捷的網盤服務,核心都是為了能夠解決日益膨脹的個人數據存儲需求,而魯大師AiNAS這樣的“軟NAS”出現,為用戶提供了多一種選擇。同時對于云盤服務供應商來說,也有了新的競爭壓力,靠“限速賣會員”躺著賺錢的時代,似乎已經過去了。
    的頭像 發表于 07-17 11:36 ?401次閱讀
    手機存儲不夠用,“軟NAS”<b class='flag-5'>成為</b>新的<b class='flag-5'>可選項</b>

    用pycharm進行python爬蟲的步驟

    PyCharm,然后點擊“Create New Project”創建一個新的Python項目。選擇一個合適的項目名稱和位置,然后選擇Python解釋。如果您還沒有安裝Py
    的頭像 發表于 07-11 10:11 ?938次閱讀

    使能PSRAM ,默認選項MALLOC, 發現HTTP報錯的原因?

    使能PSRAM ,默認選項MALLOC, 發現 HTTP出現如下錯誤 E (36786) esp-tls-mbedtls: mbedtls_ssl_setup returned -0x7f00 E
    發表于 06-21 06:31

    鴻蒙開發接口安全:【@system.cipher (加密算法)】

    加密類型,可選項有: 1.?encrypt?加密 2.?decrypt?解密
    的頭像 發表于 06-06 09:11 ?1117次閱讀
    鴻蒙開發接口安全:【@system.cipher (加密算法)】

    FPGA開發過程中配置全局時鐘需要注意哪些問題

    的時鐘源。外部時鐘輸入和內部時鐘資源都是可選項,需要綜合考慮它們的穩定性、精度和成本等因素。 時鐘分配 :全局時鐘資源需要有效地分配到各個邏輯單元。在分配時鐘時,要注意避免時鐘信號的交叉和干擾,以減少
    發表于 04-28 09:43

    谷歌推出Jpegli開源編碼庫,優化圖片壓縮,提升圖像品質

    另一大優勢則在于,Jpegli在保持對現有JPEG編碼/解碼的全面兼容的前提下,同樣支持常用的8位格式,且額外支持10位乃至更高的可選項(有助于減輕壓縮偽影等問題)。
    的頭像 發表于 04-07 11:16 ?623次閱讀

    如何使用linux下gdb來調試python程序

    GDB: ``` $ sudo apt install gdb ``` 安裝完成后,需要安裝Python調試符號。這些符號文件包含了Python解釋的調試信息,使得GDB能夠
    的頭像 發表于 01-31 10:41 ?2721次閱讀
    主站蜘蛛池模板: 国产专区青青草原亚洲 | 亚洲va国产日韩欧美精品色婷婷 | 激情综合婷婷 | 男男互攻h啪肉np文厉世 | 婷婷射丁香 | 日本黄色小视频在线观看 | 欧美色淫网站免费观看 | xxxx日| 日本xxxx色视频在线观看 | 激情丁香网 | 三级a黄| 美女免费观看一区二区三区 | 人人草人人射 | 国产精品九九久久一区hh | 国产高清网站 | 日本一区高清视频 | 欧美久久天天综合香蕉伊 | 色噜噜噜噜噜在线观看网站 | 免费看大尺度视频在线观看 | 奇米影视777狠狠狠888不卡 | www色午夜 | 99久久99 | 午夜影视免费完整高清在线观看网站 | 欧美精品首页 | 色干干 | 91福利网站 | 日本在线视频一区二区 | 欧美又粗又硬又大久久久 | 婷婷社区五月天 | 黄色一级一毛片 | 欧美色淫 | 色偷偷网 | 在线观看永久免费 | 日日干夜夜操视频 | 2017天天干| 色天使亚洲综合在线观看 | 成人ww | 国产三级香港三级人妇 | 中文字幕1页 | 明日花绮罗snis-862在线播放 | 欧美人交性视频在线香蕉 |