博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
40_并发编程-事件
阅读量:4654 次
发布时间:2019-06-09

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

一、基本定义
    
  事件默认值为False
  event = Event() #设置一个事件实例
  event.set() #设置标志位,将e事件的状态改为True
  event.clear() #清空标志位,将e事件的状态改为False
  event.wait()  #等待设置标志位
 
二、信号灯实例
1 import time 2 import random 3 from multiprocessing import Process,Event 4  5 #模拟红绿灯执行状态的函数 6 def traffic_lights(e): 7     while 1: 8         print('红灯啦') 9         time.sleep(5)10         e.set()11         print('绿灯亮')12         time.sleep(3)13         e.clear()  #将e改为了False14 def car(i,e):15 16     if not e.is_set(): #新来的车看到是红灯17         print('我们在等待.....')18         e.wait()19         print('走你')20     else:21         print('可以走了!!!')22 23 if __name__ == '__main__':24     e = Event()25     hld = Process(target=traffic_lights,args=(e,))26     hld.start()27     while 1:28         time.sleep(0.5)29         #创建10个车30         for i in range(3):31             # time.sleep(random.randrange(1,3))32             p1 = Process(target=car,args=(i,e,))33             p1.start()
信号灯实例

 

 

转载于:https://www.cnblogs.com/hq82/p/9851583.html

你可能感兴趣的文章
oracle的行转列和列转行
查看>>
AOJ 2249 Road Construction(Dijkstra+优先队列)
查看>>
BZOJ 1098 [POI2007]办公楼biu(反向图bfs+并查集优化)
查看>>
文件操作+函数基础day09
查看>>
ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决...
查看>>
Hibernate和MyBatis的对比
查看>>
Loadrunner 11 对Windows操作系统和浏览器的要求
查看>>
Python学习day8(文件操作)
查看>>
为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
查看>>
ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(1)用户注册
查看>>
pandas介绍及环境部署
查看>>
压缩解压命令流
查看>>
php yii Redis实现并发锁
查看>>
smyfony2-curd-数据库创建
查看>>
[Android]File-Output和InputStream的存取
查看>>
开发环境的坑
查看>>
站点高可用方案例子
查看>>
Spring(Bean)3
查看>>
MVC框架和MTV框架
查看>>
小学生运算题目生成器说明书
查看>>