Python Threading 線(xiàn)程/互斥鎖/死鎖/GIL鎖
導(dǎo)入線(xiàn)程包
import threading
準(zhǔn)備函數(shù)線(xiàn)程,傳參數(shù)
t1 = threading.Thread(target=func,args=(args,))
類(lèi)繼承線(xiàn)程,創(chuàng)建線(xiàn)程對(duì)象
class MyThread(threading.Thread) def run(self): pass if __name__ == "__main__": t = MyThread() t.start()
線(xiàn)程共享全面變量,但在共享全局變量時(shí)會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)誤問(wèn)題
使用 threading 模塊中的 Lock 類(lèi),添加互斥鎖可以解決線(xiàn)程共享全局變量問(wèn)題
# 創(chuàng)建鎖 mutex = threading.Lock() # 鎖定 mutex.acquire() # 釋放鎖 mutex.release()
互斥鎖可能導(dǎo)致死鎖問(wèn)題
在線(xiàn)程間共享多個(gè)資源的時(shí)候,如果兩個(gè)線(xiàn)程分別占有一部分資源,并且同時(shí)在等待對(duì)方的資源時(shí),就會(huì)造成死鎖.
解決方案:
1.銀行家算法:程序設(shè)計(jì)時(shí)想好鎖定與釋放的時(shí)空關(guān)系
2.添加超時(shí)等待
Python 中 多線(xiàn)程的 GIL 全局解釋器鎖
GIL是C語(yǔ)言版本python解釋器的遺留問(wèn)題
GIL鎖使得python中同一時(shí)刻其實(shí)只有一個(gè)線(xiàn)程在運(yùn)行
但是多線(xiàn)程畢竟還是閉單線(xiàn)程快,這是因?yàn)樵谝粋€(gè)線(xiàn)程IO阻塞的時(shí)間段,其他線(xiàn)程可以運(yùn)行
GIL 鎖和互斥鎖是不一樣的,GIL鎖是鎖線(xiàn)程的,互斥鎖是鎖線(xiàn)程內(nèi)事務(wù)的,互斥鎖是開(kāi)發(fā)者自己寫(xiě)的,GIL鎖來(lái)源與C版本python解釋器
解決GIL的方法
1.使用java版的python解釋器
2.使用其他語(yǔ)言代碼,完成該部分
總結(jié)
以上所述是小編給大家介紹的Python Threading 線(xiàn)程/互斥鎖/死鎖/GIL鎖,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
解決python3 urllib 鏈接中有中文的問(wèn)題
今天小編就為大家分享一篇解決python3 urllib 鏈接中有中文的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python實(shí)現(xiàn)一個(gè)自助取數(shù)查詢(xún)工具
在數(shù)據(jù)生產(chǎn)應(yīng)用部門(mén),取數(shù)分析是一個(gè)很常見(jiàn)的需求,實(shí)際上業(yè)務(wù)人員需求時(shí)刻變化,最高效的方式是讓業(yè)務(wù)部門(mén)自己來(lái)取,減少不必要的重復(fù)勞動(dòng),本文介紹如何用Python實(shí)現(xiàn)一個(gè)自助取數(shù)查詢(xún)工具2021-06-06python使用lxml xpath模塊解析XML遇到的坑及解決
這篇文章主要介紹了python使用lxml xpath模塊解析XML遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Python利用shutil實(shí)現(xiàn)拷貝文件功能
shutil?是一個(gè)?Python?內(nèi)置模塊,該模塊對(duì)文件的復(fù)制、刪除和壓縮等操作都提供了非常方便的支持。本文將利用shutil實(shí)現(xiàn)拷貝文件功能,需要的可以參考一下2022-07-07Python?OpenCV基于HSV的顏色分割實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Python?OpenCV基于HSV的顏色分割實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python 中對(duì) XML 文件的編碼轉(zhuǎn)換問(wèn)題
這篇文章主要介紹了Python 中對(duì) XML 文件的編碼轉(zhuǎn)換問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03