在py线程的使用上,有三个方式是需要用到的,并且和生产者与消费者有关系,一个是今天我们要说的条件变量,还有一个是关于消息队列,最后一个是协程方式的使用,这里是包括了两个形式,线程和协程,下面就使用condition给大家演示整个执行过程,可以作为我们日后调用的模板。
条件变量(Condition)方式,最复杂的一种
直接给大家贴出代码:
# 条件变量:锁功能加入等待和唤醒功能,默认RLock # 两个线程用一个 cond 锁,手动唤醒和等待 import time from threading import Thread from threading import Condition cond = Condition() num = 0 def producer(): # 生产者线程 def customer(): # 消费者线程 global num thd1 = Thread(target=producer) thd1.join() # 线程同步-等子线程结束,主线程再继续运行
简单给大家解释上面的程序,我们要执行工作程序,需要定义好线程,然后让生产者获取,当消费者碰到时候只能进行等待,当执行程序满足条件以后,在传递给消费者线程,这样的一套流程即是条件变量的使用。