day29 条件变量同步(Condition)

Python的threading.Condition对象提供了一种线程间通信的机制,允许线程在满足特定条件后继续执行。它结合了锁(RLock)并支持wait(), notify()和notifyAll()方法,以实现更复杂的同步操作。使用Condition,可以确保线程只有在满足特定条件时才运行,从而避免了不必要的资源竞争。" 110627689,10295015,Python分析LOL数据:英雄联盟游戏数据分析实战,"['Python游戏辅助', '数据分析', '英雄联盟']
摘要由CSDN通过智能技术生成

最复杂的一把锁,除了一把锁,还能实现线程间的通信(类似于)。

      有一类线程需要满足条件之后才能够继续执行,Python提供了threading.Condition 对象用于条件变量线程的支持,它除了能提供RLock()或Lock()的方法外,还提供了 wait()、notify()、notifyAll()方法。

      lock_con=threading.Condition([Lock/Rlock]): 锁是可选选项,不传入锁,对象自动创建一个RLock()。

wait():条件不满足时调用,线程会释放锁并进入等待阻塞;
notify():条件创造后调用,通知等待池激活一个线程;
notifyAll():条件创造后调用,通知等待池激活所有线程。
import threading,time
from random import randint
class Producer(threading.Thread):
    def run(self): #生产者
        global L  #引用全局变量L
        while True:
            val=randint(0,100) #val是一个随机数:0-100
            print('生产了一个包子!&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy393939

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值