python多线程高级锁condition简单用法示例
家电修理 2023-07-16 19:16www.caominkang.com电器维修
本文实例讲述了python多线程高级锁condition简单用法。分享给大家供大家参考,具体如下
多线程编程中如果使用Condition对象代替lock, 能够实现在某个事件触发后才处理数据, condition中含有的方法:
- - ait:线程挂起,收到notify通知后继续运行
- - notify:通知其他线程, 解除其它线程的ai状态
- - 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.ait() print('{}:ennn. '.format(self.name)) self.cond.notify() self.cond.ait() 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.ait() 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()
打印结果:
tiaomao:hello ~ xiaoai.
xiaoai:ennn.
tiaomao:我们来念一首诗吧! .
xiaoai:好嗒
:
这个比较鸡肋
更多关于Python相关内容感兴趣的读者可查看本站专题《Python进程与线程操作技巧》、《Python数据结构与算法教程》、《Python函数使用技巧》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总》
电脑维修网希望本文所述对大家Python程序设计有所帮助。
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线