您现在的位置是:网站首页> 编程资料编程资料
python中Event实现线程间同步介绍_python_
2023-05-26
585人已围观
简介 python中Event实现线程间同步介绍_python_
前言:
Event在python线程间同步是一种常用的方法,本博客以生产者线程和工作者线程为例说明Event在线程间进行10次同步的应用。
import threading from threading import Event, Thread import time import random from time import sleep pevent = Event() #默认是没有事件的 pevent.clear() cevent = Event() cevent.clear() runtimes = 10 mutex_lock = threading.Lock() class ProducerThread (threading.Thread): def __init__(self, name, runflag): threading.Thread.__init__(self) self.name = name self.runflag = runflag self.continueflag = Event() self.continueflag.set() def run(self): global runtimes sleep(1) print ("开始线程:" + self.name) while self.continueflag.isSet(): print("wait consumer ...") if runtimes == 0: self.continueflag.clear() break pevent.wait() print("come an consumer ...") mutex_lock.acquire() runtimes = runtimes - 1 mutex_lock.release() pevent.clear() sleep(1) cevent.set() print ("退出线程:" + self.name) self.runflag.set() class ConsumerThread (threading.Thread): def __init__(self,name, runflag): threading.Thread.__init__(self) self.name = name self.runflag = runflag self.continueflag = Event() self.continueflag.set() def run(self): global runtimes print ("开始线程:" + self.name) while self.continueflag.isSet(): if 0 == runtimes: self.continueflag.clear() pevent.set() break print("I want to consum ... ", runtimes) pevent.set() #通知生产者要消费 cevent.wait() cevent.clear() sleep(1) print ("退出线程:" + self.name) self.runflag.set() def test_pthread(): runflag = Event() pt = ProducerThread("producer", runflag) ct = ConsumerThread("consumer", runflag) pt.start() ct.start() pt.join() ct.join() runflag.wait() if __name__ == '__main__': print('===============begin=================') test_pthread() print('===============end=================')运行结果如下:

到此这篇关于python中Event实现线程间同步介绍的文章就介绍到这了,更多相关Event线程间同步内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- python 针对在子文件夹中的md文档实现批量md转word_python_
- python实现自动整理文件_python_
- 使用Python程序计算钢琴88个键的音高_python_
- python PIL Image 图像处理基本操作实例_python_
- Python Pytorch学习之图像检索实践_python_
- 基于Python的科学占卜工具开发过程_python_
- 基于Python实现Excel转Markdown表格_python_
- 利用Python实现RSA加密解密方法实例_python_
- Python实现识别花卉种类的示例代码_python_
- 基于Python编写一个简单的端口扫描器_python_
