event的用法—通知
Event 是 python 锁机制的一种,用于通知线程是堵塞等待还是进行下一步操作。Event有一个标志_flag,在创建时默认初始化为False。set()方法设置Event状态标志_flag为True。clear()方法复位为False。
主要应用方法为wait(timeout)。timeout的单位为秒。wait的timeout参数为空,如标志_flag为False,则堵塞等待。否则执行下一步。在标志为False时,如果timeout参数不为空,则堵塞时间到后返回状态值,执行下一步。如标志为True,则直接执行下一步。
应用场景:简单的猜密码。用户输入一个字符串,如字符串不正确,则等待三秒后提示用户继续输入。直到用户输入正确字符串为止。
代码示例:
#!/usr/bin/env python
# -*- coding: utf-8 -*-from time import ctime, sleep
from threading import Thread, Event
def inputchar():print('begin to input the correct chars\n')while True:if input() == 'abc':event.set()breakdef showtip():while not event.wait(3):print('input chars:\n')print('you input correct chars')if __name__ == '__main__':event = Event()event.set()event.clear()t1 = Thread(target=inputchar)t2 = Thread(target=showtip)t1.start()t2.start()t1.join()t2.join()
运行结果:
D:\Programs\Python\Python38-32\python.exe E:/PycharmProjects/cp/src/ch04/ex11_event.py
begin to input the correct charsinput chars:input chars:ainput chars:aa
input chars:aafaf
input chars:abc
you input correct charsProcess finished with exit code 0
event的用法—通知相关推荐
- js事件之event.preventDefault()与event.stopPropagation()用法区别
event.preventDefault()将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任 ...
- python中event的用法_Python编程之event对象的用法实例分析
本文实例讲述了Python编程中event对象的用法.分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号 ...
- event.keyCode用法及列表
用户名:<input type="text" id="UserAccount" onKeyPress="JumpByEnter(UserPwd) ...
- javascript中window.event事件用法详解
前两天写程序时因为要用到javascript中的window.event事件,于是就在网上搜了一下,终于找到一篇不错的文章,来与大家分享下: 描述 event代表事件的状态,例如触发event对 ...
- mysql event 变量_mysql 中event的用法
二.适用范围对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理. 例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表. 三.使用权限 开启eve ...
- js函数中关于this与event的用法
This 说明:this关键字要想在函数中使用以代表调用函数的那个对象,必须要作为函数的实参传入,而且函数对应的形参还不能直接是this接收, 然后才能在函数内部获取到调用本函数的那个对象(我的理解是 ...
- $.Event 用法
$.Event 用法 最近在使用Bootstrap.js,一不小心趴开源码看了一下,尤其是看到tab.js 1 var hideEvent = $.Event('hide.bs.tab', { 2 r ...
- JS事件cancelBubble、event.preventDefault()与event.stopPropagation()简单介绍
推荐看原文:https://blog.csdn.net/iamlegendary/article/details/54409038 cancelBubble用于ie的阻止冒泡事件. event.sto ...
- CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于"开"状态,我们称其为"有信号"否则称为"无信号".可以在一个线程的执行函数 ...
最新文章
- 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks
- 学习进度 - 004
- Linux解决 -bash: nc: command not found问题,安装nc
- 用html5做一条线,使用HTML5 canvas绘制线条的方法
- 又摊上事了!刹车门还没完,特斯拉或将面临10亿元巨额索赔
- 南信大滨江学院计算机考试姜青山,【数据库原理】滨江学院姜青山 期末试卷知识点笔记整理 南京信息工程大学...
- 智力题 - 士兵编队与传讯员
- 《Programming in Lua 3》读书笔记(五)
- VB.NET中DataGridView控件
- WINDOWS常用端口列表
- 查看linux系统版本命令
- 【chp3】代码调试-车万翔-自然语言处理:基于预训练模型的方法
- 360安全卫士安装不了此程序被组策略阻止
- Gossiping闲聊路由协议
- 算法笔记(胡凡)刷题收获@Kaysen
- 关于spring-mybatis整合出现的问题Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso
- 新版小爱课程表正方教务系统课表适配
- 婚恋交友app源码,你要了解数据结构
- 沉睡者IT - 十月之后「牛市」还是「熊市」
- 那一年,他还在为了今日的成就而奋力打拼
热门文章
- python如何学 Python主要能做什么
- 小白如何通过markdown文件自制kindle的 MOBI 格式文档
- 如何设置虚拟机访问外网
- 12.2 关闭DLM 自动收集统计信息 (SCM0)ORA-00600之[ksliwat: bad wait time]
- Android 6.0 AppOps 简介
- apache2.2配置https协议(key文件、crt文件、csr文件生成方法)
- 土豪聪要请客(stol)
- Unity:简单易懂小游戏
- Python 之父出生 | 历史上的今天
- win32,win64编程永恒;语言编程需要注意的64位