Python events
- Events不同线程之间同步对象
参数说明:
# 实例化event对象
event = threading.Event() # 等待检测标志位被设定,标志位设置后就不阻塞了
# 客户机线程可以等待设置标志
event.wait() # 设置一个全局变量标志位True
event.set() # 清空全局变量False
event.clear()
events模板:
import time,threading # 生成event实例对象
event = threading.Event() # 设置红绿灯函数
def lighter(): # 设置变量0
count = 0 # 设置event为True 启动绿灯
event.set()
while True:
# 如果在5以上10一下就成立
if count >5 and count < 10:
# 清空event为False,显示红灯
event.clear()
print("\033[41;1mThe red light..\033[0m")
# 如果10以上就成立
elif count >10:
# 设置为True 变绿灯
event.set()
# 还原为0
count = 0
else:
print("\033[42;1mThe green light..\033[0m") # 每次1秒就+1
time.sleep(1)
count +=1 # 模拟车量函数
def car(name):
while True:
# 测试是否设置了标识位,射了为True,未射False
if event.is_set():
print("[%s] running..."%name)
time.sleep(1)
else:
# 为False的时候就是红灯
print("[%s] sees red light , waiting..."%name)
# 等待检测标识位,表示位后往下执行
event.wait()
print("\033[34;1m[%s] green light is on,start going...\033[0m"%name) # 生成实例话执行红绿灯线程
light = threading.Thread(target=lighter)
light.start() # 生成实例话执行车线程
car1 = threading.Thread(target=car,args=("Tesla",))
car1.start()
Python events的更多相关文章
- python urllib模块
1.urllib.urlopen(url[,data[,proxies]]) urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像 ...
- Python 运维之路
第一章:Python基础知识 1.Python 变量了解 .Python 二进制 .Python 字符编码 4.Python if条件判断 5.Python while循环 6.Python for循 ...
- python中对 函数 闭包 的理解
最近学到 函数 闭包的时候,似懂非懂.迷迷糊糊的样子,很是头疼,今天就特意查了下关于闭包的知识,现将我自己的理解分享如下! 一.python 闭包定义 首先,关于闭包,百度百科是这样解释的: 闭包是指 ...
- python官网导航翻译
- 系统学习爬虫_2_urllib
什么是urllib urlopen urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cad ...
- Python threads synchronization: Locks, RLocks, Semaphores, Conditions, Events and Queues(Forwarding)
This article describes the Python threading synchronization mechanisms in details. We are going to s ...
- 【初学python】使用python调用monkey测试
目前公司主要开发安卓平台的APP,平时测试经常需要使用monkey测试,所以尝试了下用python调用monkey,代码如下: import os apk = {'j': 'com.***.test1 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
随机推荐
- php四个常用类封装
这4个类分别是Mysql类. 分页类.缩略图类.上传类. Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = nul ...
- Golang知识图谱
原:https://www.processon.com/view/link/5a9ba4c8e4b0a9d22eb3bdf0?from=timeline 百度脑图重制:http://naotu.bai ...
- java模拟http请求(代理ip)
java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST
- python基础类型—元祖
元组 被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组. 例:(1,2,3)("a","b","c") ...
- weapp-mobx
// weapp-mobx.js const l = console.log; import { autorun } from "./mobx.umd.min"; function ...
- oracle xe 创建表空间
使用OracleXE控制台,我们会发现一个奇怪的现象:没有提供创建表空间.增加数据文件等功能.这似乎和我们使用Oracle标准版控制台不一样. 其实在OracleXE中可以创建新的表空间,不过一般情况 ...
- APP安全在线检测
腾讯金刚审计系统 http://service.security.tencent.com/kingkong 免费 无限制 腾讯御安全 http://yaq.qq.com/ 免费 查看漏洞详情需认证 阿 ...
- [ERROR] - Error reading string. Unexpected token: StartObject. Path 'formData', line 1, position 13.
公司流程框架: businessData 为 string 所有要使用JSON.stringify();
- Spring Boot核心注解@SpringBootApplication
一.作用 @SpringBootApplication是一个组合注解,用于快捷配置启动类. 二.用法 可配置多个启动类,但启动时需选择以哪个类作为启动类来启动项目. 三.拆解 1.拆解 ...
- ext.js的mvc开发模式详解
ext.js的mvc开发模式详解和环境配置 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开 ...