python(五)-多线程-condition(条件变量)

什么是conditioncondition 多线程条件变量,即在满足特点的条件下,线程才能访问相关的数据,这种同步机制就是一个线程等待特定的条件,当另一个线程满足条件后通知它,该等待线程才会执行,一旦条件满足,该线程就会获得锁,从而独占共享资源的访问。常用方法acquire:获取锁release:释放锁wait:等待获取通知,可以设置超时notify:唤醒一个或多个等待线程notify_all(唤醒所有等待此条件的线程)===========举例(小爱和小度对话)================import threadingclass xiaoDu(threading.Thread):    def __init__(self,cond):        super().__init__(name='小度')        self.cond = cond    def run(self):        with self.cond:            self.cond.wait()            print(self.name +':怎么了')            self.cond.notify()            self.cond.wait()            print(self.name + ':今天北京天气还不错')            self.cond.notify()class xiaoAi(threading.Thread):    def __init__(self,cond):        super().__init__(name= '小爱')        self.cond = cond    def run(self):        with self.cond:            print(self.name +':小度小度')            self.cond.notify()            self.cond.wait()            print(self.name +':北京今天的天气怎么样')            self.cond.notify()            self.cond.wait()cond = threading.Condition()xiaodu = xiaoDu(cond)xiaoai = xiaoAi(cond)xiaodu.start()xiaoai.start()======运行结果小爱:小度小度小度:怎么了小爱:北京今天的天气怎么样小度:今天北京天气还不错

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值