python多線程高級鎖condition簡單用法示例
本文實(shí)例講述了python多線程高級鎖condition簡單用法。分享給大家供大家參考,具體如下:
多線程編程中如果使用Condition對象代替lock, 能夠?qū)崿F(xiàn)在某個事件觸發(fā)后才處理數(shù)據(jù), condition中含有的方法:
- - wait:線程掛起,收到notify通知后繼續(xù)運(yùn)行
- - notify:通知其他線程, 解除其它線程的wai狀態(tài)
- - notifyAll(): 通知所有線程
- - acquire和release: 獲得鎖和解除鎖, 與lock類似,
- - enter和exit使得對象支持上下文操作:
def __enter__(self): return self._lock.__enter__() def __exit__(self, *args): return self._lock.__exit__(*args)
代碼:
import threading from threading import Condition # condition class XiaoAi(threading.Thread): def __init__(self, cond): self.cond = cond super().__init__(name="xiaoai") def run(self): self.cond.acquire() self.cond.wait() print('{}:ennn. '.format(self.name)) self.cond.notify() self.cond.wait() print('{}:好嗒. '.format(self.name)) self.cond.release() class TianMao(threading.Thread): def __init__(self, cond): super().__init__(name="tiaomao") self.cond = cond def run(self): self.cond.acquire() print('{}:hello ~ xiaoai. '.format(self.name)) self.cond.notify() self.cond.wait() print('{}:我們來念一首詩吧! . '.format(self.name)) self.cond.notify() self.cond.release() if __name__ == '__main__': condition = Condition() xiaoai = XiaoAi(condition) tianmao = TianMao(condition) # 啟動順序很重要 xiaoai.start() tianmao.start()
打印結(jié)果:
tiaomao:hello ~ xiaoai.
xiaoai:ennn.
tiaomao:我們來念一首詩吧! .
xiaoai:好嗒
總結(jié):
這個比較雞肋
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫程序設(shè)計(jì)入門教程》及《Python常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python UIAutomator2使用超詳細(xì)教程
這篇文章主要介紹了python UIAutomator2使用超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解
這篇文章主要介紹了Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解,在Python中有時候需要操作excel表格的數(shù)據(jù),把excel表格轉(zhuǎn)化為字典存起來,方便讀取,今天我們就來看看如何轉(zhuǎn)換,需要的朋友可以參考下2023-08-08Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實(shí)例
這篇文章主要介紹了Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實(shí)例,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12Python?ArcPy實(shí)現(xiàn)批量拼接長時間序列柵格圖像
這篇文章主要介紹了如何基于Python中ArcPy模塊,對大量不同時相的柵格遙感影像按照其成像時間依次執(zhí)行批量拼接的方法,感興趣的可以了解一下2023-03-03通過實(shí)例解析Python return運(yùn)行原理
這篇文章主要介紹了通過實(shí)例解析Python return運(yùn)行原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03在Python中pandas.DataFrame重置索引名稱的實(shí)例
今天小編就為大家分享一篇在Python中pandas.DataFrame重置索引名稱的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Django框架登錄加上驗(yàn)證碼校驗(yàn)實(shí)現(xiàn)驗(yàn)證功能示例
這篇文章主要介紹了Django框架登錄加上驗(yàn)證碼校驗(yàn)實(shí)現(xiàn)驗(yàn)證功能,結(jié)合實(shí)例形式分析了Django框架基于Pillow模塊的圖形驗(yàn)證碼生成與使用相關(guān)操作技巧,需要的朋友可以參考下2019-05-05