Python多線(xiàn)程編程之多線(xiàn)程加鎖操作示例
本文實(shí)例講述了Python多線(xiàn)程編程之多線(xiàn)程加鎖操作。分享給大家供大家參考,具體如下:
Python語(yǔ)言本身是支持多線(xiàn)程的,不像PHP語(yǔ)言。
下面的例子是多個(gè)線(xiàn)程做同一批任務(wù),任務(wù)總是有task_num個(gè),每次線(xiàn)程做一個(gè)任務(wù)(print),做完后繼續(xù)取任務(wù),直到所有任務(wù)完成為止。
# -*- coding:utf-8 -*- #! python2 import threading start_task = 0 task_num = 10000 mu = threading.Lock() ###通過(guò)工廠(chǎng)方法獲取一個(gè)新的鎖對(duì)象 class MyThread(threading.Thread): ###類(lèi)MyThread繼承基類(lèi)threading.Thread def run(self): ##線(xiàn)程啟動(dòng)的入口函數(shù),子類(lèi)需重寫(xiě) global start_task global mu global start_task while start_task < task_num: ##如果任務(wù)沒(méi)有完成,則繼續(xù) if mu.acquire(): ##加鎖 if start_task < task_num: print start_task start_task = start_task + 1 mu.release() ##釋放鎖 def test(): thread_all = [] for i in range(6): ##for循環(huán)創(chuàng)建6個(gè)線(xiàn)程 t = MyThread() ##創(chuàng)建線(xiàn)程 thread_all.append(t) t.start() ###啟動(dòng)線(xiàn)程 for i in range(6): thread_all[i].join() ##等待線(xiàn)程結(jié)束 if __name__ == "__main__": test()
運(yùn)行上述代碼,則輸出1~9999
測(cè)試加鎖與不加鎖效果:將任務(wù)數(shù)設(shè)置為1千萬(wàn)或者以上,在多核機(jī)器上將print輸出分別保存,就能說(shuō)明問(wèn)題。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python進(jìn)程與線(xiàn)程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)入門(mén)教程》及《Python常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python模擬登陸,用session維持回話(huà)的實(shí)例
今天小編就為大家分享一篇python模擬登陸,用session維持回話(huà)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12在pandas中一次性刪除dataframe的多個(gè)列方法
下面小編就為大家分享一篇在pandas中一次性刪除dataframe的多個(gè)列方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04python書(shū)籍信息爬蟲(chóng)實(shí)例
這篇文章主要為大家詳細(xì)介紹了python書(shū)籍信息爬蟲(chóng)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python利用psutil獲取CPU與內(nèi)存等硬件信息
psutil是Python的一個(gè)第三方庫(kù),提供了各種強(qiáng)大的硬件信息查閱功能,這篇文章主要為大家介紹了如何利用psutil獲取CPU與內(nèi)存等硬件信息,需要的可以參考一下2023-07-07python實(shí)現(xiàn)報(bào)表自動(dòng)化詳解
這篇文章主要介紹了python實(shí)現(xiàn)報(bào)表自動(dòng)化詳解,涉及python讀,寫(xiě)excel—xlwt常用功能,xlutils 常用功能,xlwt寫(xiě)Excel時(shí)公式的應(yīng)用等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11