博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python多线程之Event(事件)
阅读量:6079 次
发布时间:2019-06-20

本文共 1314 字,大约阅读时间需要 4 分钟。

#!/usr/bin/env python# -*- coding: utf-8 -*-import timefrom threading import Thread, Eventimport randomitems = []event = Event()class Consumer(Thread):    def __init__(self, items, event):        Thread.__init__(self)        self.items = items        self.event = event    def run(self):        while True:            time.sleep(2)            self.event.wait()            item = self.items.pop()            print("Consumer notify: %d poped from list by %s"                  %(item, self.name))class Producer(Thread):    def __init__(self, items, event):        Thread.__init__(self)        self.items = items        self.event = event    def run(self):        global item        for i in range(10):            time.sleep(2)            item = random.randint(0, 256)            self.items.append(item)            print ("Producer nofity: item N %d appended to list by %s"                   % (item, self.name))            print ("Producer notify: event set by %s "                   % self.name)            self.event.set()            print("Produce notify: event clear by %s\n"                  % self.name)            self.event.clear()if __name__ == "__main__":    producer = Producer(items, event)    consumer = Consumer(items, event)    producer.start()    consumer.start()    producer.join()    consumer.join()

转载地址:http://suhgx.baihongyu.com/

你可能感兴趣的文章
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
Gallery循环滑动
查看>>
Sql与C#中日期格式转换总结
查看>>
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>
WPF 降低.net framework到4.0
查看>>
数据管理DMS 全量SQL诊断:你的SQL是健康的蓝色,还是危险的红色?
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>