Python–Event

事件Event:

同进程的一样,线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就会变得非常棘手。为了解决这些问题,我们需要使用threading库中的Event对象。 对象包含一个可由线程设置的信号标志,它允许线程等待某些事件的发生。

在初始情况下,Event对象中的信号标志被设置为false。如果有线程等待一个Event对象, 而这个Event对象的标志为false,那么这个线程将会被一直阻塞直至该标志为真。一个线程如果将一个Event对象的信号标志设置为真,它将唤醒所有等待这个Event对象的线程。如果一个线程等待一个已经被设置为真的Event对象,那么它将忽略这个事件,继续执行。

Event方法:

1、event.isSet():当且仅当内部标志为 True时返回 True

2、event.set():将内部标志设置为 True。所有等待它成为 True的线程都被唤醒。当标志保持在 True的状态时,线程调用 wait()是不会阻塞的。

3、event.clear():将内部标志重置为 False。随后,调用 wait()的线程将阻塞,直到另一个线程调用 set()将内部标志重新设置为 True

4、event.wait():阻塞直到内部标志为真。如果内部标志在 wait()方法调用时为 True,则立即返回。否则,则阻塞,直到另一个线程调用 set()将标志设置为 True,或发生超时。

红绿灯示例:

执行结果:

Original: https://www.cnblogs.com/sunnytomorrow/p/13529061.html
Author: NorthFeng
Title: Python–Event

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590699/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL源码分析之SQL函数执行

    1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包含函数的SQL语句,在mysql中会经过: &#x5BA2…

    数据库 2023年5月24日
    0142
  • postman结合newman生成测试报告

    1. cmd窗口安装newman npm install -g newman 2. cmd窗口安装newman-html报告 nnpm install -g newman-repo…

    数据库 2023年5月24日
    093
  • Fork/Join框架

    我们要使用ForkJoin框架,必须首先创建一个ForkJoin任务。它提供在任务中执行 fork()和 join() 操作的机制,通常情况下我们不需要直接继承ForkJoinTa…

    数据库 2023年6月14日
    0106
  • http状态码总结

    表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求…

    数据库 2023年6月6日
    094
  • MySQL临时表

    MySQL中临时表主要有两类,包括外部临时表和内部临时表。外部临时表是通过语句create temporary table…创建的临时表,临时表只在本会话有效,会话断开…

    数据库 2023年6月9日
    0121
  • python使用sys.path添加临时环境变量

    直接上代码: 1 # -*- coding: gbk -*- 2 import sys 3 4 sys.path.append(‘H:\project_py\jiJin’) # 把…

    数据库 2023年6月11日
    0112
  • python 里 certifi 库的作用

    安装了certifi之后,和requests库一样也有一个cacert.pem,可以用编辑器打开cacert.pem,里面包含了很多可信任知名公司的证书/公钥库的路径,我这里是py…

    数据库 2023年6月9日
    0118
  • 数据库

    建库操作 #创建数据库(默认字符集编码) create database test20210420 #创建数据库的时候指定字符集编码以及字符校验规则 create database…

    数据库 2023年5月24日
    095
  • MySQL事务基本使用

    1 事务概述 1.1 事务的支持情况 1.2 事务的特性 1.3 事务的状态 2 使用事务 2.1 显示事务 2.2 隐藏事务 3 事务隔离等级 3.1 数据并发问题 3.2 事务…

    数据库 2023年6月9日
    0128
  • 【转】 一条 SQL 的执行过程详解

    MySQL 体系架构 – 连接池组件 1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据,而不能同时进行。 …

    数据库 2023年5月24日
    0121
  • CentOS 7 RabbitMQ集群部署

    基于的RabbitMQ版本:3.8.5 Status of node rabbit@node236 … Runtime OS PID: 13975 OS: Linux Upti…

    数据库 2023年6月9日
    0127
  • SQL与数据库编程学习笔记-day1

    一:理论知识参考 学习网站参考: 数据库主要分为两类: 1.关系型数据库:关系型数据库采用表格的储存方式,数据以行和列的方式进行存储,要读取和查询都十分方便,例如常见的:Oracl…

    数据库 2023年6月9日
    0115
  • HA: FORENSICS靶机练习

    ubuntu拿到手,没有恢复模式,不好绕密码,仿真软件又会更改所有用户的密码,怕影响后续操作,先不采用,先试试用john跑一下看看能不能跑出一两个来。 刚好跑出来一个,用户 &lt…

    数据库 2023年6月11日
    0119
  • 【Java代码之美】 — 通过Value获取Map中的键值Key的四种方法

    1.简介 最近在项目中遇到一个EasyExcel中需要取invokeHeadMap中headMap里面的具体列名的集合Index,就遇到了需要从Map从反向通过Value取对应的K…

    数据库 2023年6月6日
    0143
  • hosts文件作用

    1、加快域名解析对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络…

    数据库 2023年6月11日
    083
  • Question04-查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩

    * SELECT stu.SID, stu.Sname, IFNULL(CAST(AVG(sc.score) AS DECIMAL(18,2)), 0) 平均成绩 FROM Stu…

    数据库 2023年6月16日
    0109
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球