教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python如何实现线程条件同步

Python如何实现线程条件同步

发布时间:2021-12-06   编辑:jiaochengji.com
教程集为您提供Python如何实现线程条件同步等资源,欢迎您收藏本站,我们将为您提供最新的Python如何实现线程条件同步资源

同步条件

条件同步和条件变量同步差不多意思,只是少了锁功能,因为条件同步设计于不访问共享资源的条件环境。event=threading.Event():条件环境对象,初始值 为False;

event.isSet():返回event的状态值;

event.wait():如果 event.isSet()==False将阻塞线程;

event.set(): 设置event的状态值为True,所有阻塞池的线程激活进入就绪状态, 等待操作系统调度;

event.clear():恢复event的状态值为False。

相关推荐:《Python视频教程》

<pre class="brush:php;toolbar:false">import threading, time class Boss(threading.Thread):     def run(self):         print("BOSS: 今晚大家加班")         event.isSet() or event.set()         time.sleep(5)         print("BOSS: 大家可以下班了")         event.isSet() or event.set() class Worker(threading.Thread):     def run(self):         event.wait()         print("Worker: 唉。。。。")         time.sleep(0.25)         event.clear()         event.wait()         print("Worker: Great!") if __name__ == "__main__":     event = threading.Event()     threads = []     for i in range(5):         threads.append(Worker())     threads.append(Boss())     for t in threads:         t.start()     for t in threads:         t.join()</pre>

运行结果:

<pre class="brush:php;toolbar:false">BOSS: 今晚大家加班 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 BOSS: 大家可以下班了 Worker: Great! Worker: Great! Worker: Great! Worker: Great! Worker: Great!</pre>

相关推荐:

Python如何实现条件变量同步

您可能感兴趣的文章:
Python如何实现线程条件同步
Python中进程与线程的区别是什么
Python之全局解释器锁GIL
Python如何实现条件变量同步
经典Java线程面试题70道
fluent python是什么意思
Python如何实现线程间同步
Python进程锁Lock是什么
进一步认识python线程池
什么是线程(多线程),Python多线程的好处

[关闭]
~ ~