event 实现两个程序的交互
event.wait() 等待一定时间,或者当遇到event.set() 时,继续执行
event.clear() 清除信号
event.set() 设置信号
event.isset() 判断信号
例一: 红绿灯
#event 实现两个线程之间的交互
import time, threading def lighter():
if not event.is_set():
event.set()
count = 0
while True:
if count<10:
print('the green light is run %s'%count)
elif count<15: print('the yellow light is run %s'%count) elif count<20:
print('the red light is run %s'%count)
event.clear() else:
count = 0
event.set()
time.sleep(1)
count += 1 def cars(n):
while True:
if event.is_set():
print('%s is running'%n) else:
print('%s is stoping'%n) time.sleep(1) event = threading.Event()
light = threading.Thread(target=lighter, args=())
light.start()
car = threading.Thread(target=cars, args=('tesl', ))
car.start() 例二 开关门
import threading, time, random def door():
door_count_number = 0
while True:
if door_state.is_set():
print('the door is open')
door_count_number += 1 else:
print('the door has been closed')
door_count_number = 0
door_state.wait() if door_count_number > 3:
door_state.clear() time.sleep(0.5) def staff(n):
print('%s is comming'%n)
while True:
if door_state.is_set():
print('%s is pass'%n)
break
else :
door_state.set()
print('staff[%s]sees door got closed, swipped the card') time.sleep(0.5) door_state = threading.Event()
Door = threading.Thread(target=door)
Door.start() for i in range(5):
p = threading.Thread(target=staff, args=(i, ))
time.sleep(random.randrange(3))
p.start()
event 实现两个程序的交互的更多相关文章
- .Net Webapi SignalR与微信小程序的交互
.Net Webapi SignalR与微信小程序的交互 一.SignalR与Webapi 1.SignalR的安装: Signalr与跨域仅需要安装两个开源库 Microsoft.Owin.Cors ...
- 前后端开发(2):浏览器与PHP程序的交互
上一节介绍怎么在mac电脑上启用PHP程序,并且演示了一个简单的例子,这个例子运行时,涉及了浏览器.apache以及PHP程序的交互,这三者的关系大概是这样的: 一般来说,浏览器(或者类似功能的程序) ...
- android实现两个activity数据交互
android如何实现两个Activity数据交互?主要是根据Intent的携带功能,intent可以携带很多信息,比如Bundle,URI甚至对象(此时要序列化,并且对象里面的成员变量如果是对象,也 ...
- 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层
提供DELPHI中间件及中间件集群,有意请联系. N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽 ...
- JIT(Just in time,即时编译,边运行边编译)、AOT(Ahead Of Time,运行前编译),是两种程序的编译方式
JIT(Just in time,即时编译,边运行边编译).AOT(Ahead Of Time,运行前编译),是两种程序的编译方式
- VC++ 在两个程序中 传送字符串等常量值的方法:使用了 WM_COPYDATA 消息(转载)
转载:http://www.cnblogs.com/renyuan/p/5037536.html VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的 消息作用: ...
- 插入10W数据的两个程序比较
程序1 添加10W数据 $count = 0; for ($i = 1;$i <= 100000 ;$i++) { $add_data = [ 'id' => $i, 'username' ...
- Java内存分析1 - 从两个程序说起
这次看一些关于JVM内存分析的内容. 两个程序 程序一 首先来看两个程序,这里是程序一:JVMStackTest,看下代码: package com.zhyea.robin.jvm; public c ...
- 计算机网络|C语言Socket编程,实现两个程序间的通信
C语言Socket编程,实现两个程序间的通信 server和client通信流程图 在mooc上找到的,使用Socket客户端client和服务端server通信的流程图
随机推荐
- mac os 里的 JAVA_HOME
google了一下,发现了这篇文章Important Java Directories on Mac OS X(https://developer.apple.com/library/content/ ...
- win10下ASP.NET Core 2.0部署环境搭建(转)
此文用于记录在win10环境下,新建的Asp.net Core 2.0 Web应用项目如何运行在IIS上 一.运行环境 操作系统: Window10 家庭中文版 版本 10.0.15063 版本 15 ...
- Servlet和JSP比较
1. 两者哟许多相似之处,都可以生成动态网页 2. JSP的优点是擅长于网页制作,生成动态页面,比较直观. JSP的缺点是不容易跟踪与拍错 3. Servlet是纯Java语言,擅长流程处理和业务逻辑 ...
- Angular 4 组件间的通信
一.输入属性(父组件与子组件通信) 1. 创建工程 ng new demo1 2.创建order组件 ng g component order 3. 在order组件里定义输入属性 order组件的h ...
- Angular 4 绑定
一.事件绑定 1. 创建doOnClick函数 2. 网页中绑定doOnClick方法 3. 效果图 二. 属性绑定 1. 定义imgUrl的网址 2. 定义img src属性 另外一种写法 3. ...
- Fix Visual Studio 2013 Razor CSHTML Intellisense in Class Library or Console Application
https://mhusseini.wordpress.com/2015/02/05/fix-visual-studio-2013-razor-cshtml-intellisense-in-class ...
- php生成随机颜色代码
function rand_color($color_array) { $color = dechex(rand(3355443,13421772)); if (in_array($color, $c ...
- 关于 android 读取当前手机号码
手机号码不是所有的都能获取.只是有一部分可以拿到.这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码 ...
- bzoj2242 计算器
Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...
- java-appium-527 WebDriver协议&针对控件的操作
1.WebDriver协议 https://www.w3.org/TR/webdriver/#list-of-endpoints 1.1查看当前所有的session情况 http://127.0.0. ...