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的用法—通知相关推荐

  1. js事件之event.preventDefault()与event.stopPropagation()用法区别

    event.preventDefault()将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任 ...

  2. python中event的用法_Python编程之event对象的用法实例分析

    本文实例讲述了Python编程中event对象的用法.分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号 ...

  3. event.keyCode用法及列表

    用户名:<input type="text" id="UserAccount" onKeyPress="JumpByEnter(UserPwd) ...

  4. javascript中window.event事件用法详解

    前两天写程序时因为要用到javascript中的window.event事件,于是就在网上搜了一下,终于找到一篇不错的文章,来与大家分享下:  描述   event代表事件的状态,例如触发event对 ...

  5. mysql event 变量_mysql 中event的用法

    二.适用范围对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理. 例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表. 三.使用权限 开启eve ...

  6. js函数中关于this与event的用法

    This 说明:this关键字要想在函数中使用以代表调用函数的那个对象,必须要作为函数的实参传入,而且函数对应的形参还不能直接是this接收, 然后才能在函数内部获取到调用本函数的那个对象(我的理解是 ...

  7. $.Event 用法

    $.Event 用法 最近在使用Bootstrap.js,一不小心趴开源码看了一下,尤其是看到tab.js 1 var hideEvent = $.Event('hide.bs.tab', { 2 r ...

  8. JS事件cancelBubble、event.preventDefault()与event.stopPropagation()简单介绍

    推荐看原文:https://blog.csdn.net/iamlegendary/article/details/54409038 cancelBubble用于ie的阻止冒泡事件. event.sto ...

  9. CreateEvent的用法

    事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于"开"状态,我们称其为"有信号"否则称为"无信号".可以在一个线程的执行函数 ...

最新文章

  1. 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks
  2. 学习进度 - 004
  3. Linux解决 -bash: nc: command not found问题,安装nc
  4. 用html5做一条线,使用HTML5 canvas绘制线条的方法
  5. 又摊上事了!刹车门还没完,特斯拉或将面临10亿元巨额索赔
  6. 南信大滨江学院计算机考试姜青山,【数据库原理】滨江学院姜青山 期末试卷知识点笔记整理 南京信息工程大学...
  7. 智力题 - 士兵编队与传讯员
  8. 《Programming in Lua 3》读书笔记(五)
  9. VB.NET中DataGridView控件
  10. WINDOWS常用端口列表
  11. 查看linux系统版本命令
  12. 【chp3】代码调试-车万翔-自然语言处理:基于预训练模型的方法
  13. 360安全卫士安装不了此程序被组策略阻止
  14. Gossiping闲聊路由协议
  15. 算法笔记(胡凡)刷题收获@Kaysen
  16. 关于spring-mybatis整合出现的问题Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso
  17. 新版小爱课程表正方教务系统课表适配
  18. 婚恋交友app源码,你要了解数据结构
  19. 沉睡者IT - 十月之后「牛市」还是「熊市」
  20. 那一年,他还在为了今日的成就而奋力打拼

热门文章

  1. python如何学 Python主要能做什么
  2. 小白如何通过markdown文件自制kindle的 MOBI 格式文档
  3. 如何设置虚拟机访问外网
  4. 12.2 关闭DLM 自动收集统计信息 (SCM0)ORA-00600之[ksliwat: bad wait time]
  5. Android 6.0 AppOps 简介
  6. apache2.2配置https协议(key文件、crt文件、csr文件生成方法)
  7. 土豪聪要请客(stol)
  8. Unity:简单易懂小游戏
  9. Python 之父出生 | 历史上的今天
  10. win32,win64编程永恒;语言编程需要注意的64位