python GIL的使用及弊端處理

firefule發表於2021-09-11

python GIL的使用及弊端處理

用處

1、解決多執行緒間資料的完整性和狀態同步問題。

例如,Python物件的管理是用引用計數器進行的,引用數為0釋放物件。開始:執行緒a和執行緒b引用物件obj、obj.ref_num=2,執行緒a和b都想取消obj的引用。

2、避免GIL帶來的限制,用IO密集型計算,或使用multiprocessing的多過程機制實現平行計算。

(1)多執行緒threading機制仍然有用,用IO密集型計算。在I/O(read、write、send、recv、etc.)期間,執行緒釋放GIL,實現CPU和IO的並行。因此,多執行緒用於IO密集型計算,可以大幅度提高速度。然而,當多執行緒用於計算中央處理器密集時,只會更慢。

(2)使用multiprocessing的多過程機制實現平行計算,利用多核心CPU的優勢。為了應對GIL的問題,Python提供了multiprocessing。

以上就是python GIL的使用及弊端處理,希望對大家有所幫助。更多Python學習指路:

本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1834/viewspace-2829662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章