from threading import Thread, Event
import time event = Event() def light():
print('红灯亮着,所有车都要等待')
time.sleep(3)
print('绿灯亮了,可以出发')
event.set() # 定义一个事件,当所有线程遇到event.wait的时候都会等待这个事件,直到这个事件运行完了,event.wait才能继续运行 def car(name):
print(f'{name}正在等红灯')
event.wait() # 定义一个event.wait事件,等event.set运行完了才会继续运行
print(f'{name}可以出发了!!') t = Thread(target=light)
t.start() # 运行event.set事件的函数
for i in range(5):
t = Thread(target=car, args=(f'汽车{i}',))
t.start()

python线程之event事件的更多相关文章

  1. python 线程之 threading(四)

    python 线程之 threading(三) http://www.cnblogs.com/someoneHan/p/6213100.html中对Event做了简单的介绍. 但是如果线程打算一遍一遍 ...

  2. python 线程之 threading(三)

    python 线程之 threading(一)http://www.cnblogs.com/someoneHan/p/6204640.html python 线程之 threading(二)http: ...

  3. python 线程之_thread

    python 线程之_thread _thread module: 基本用法: def child(tid): print("hello from child",tid) _thr ...

  4. 并发编程之Event事件

    Event事件 用来同步线程之间的状态. 举个例子: ​ 你把一个任务丢到了子线程中,这个任务将异步执行.如何获取到这个任务的执行状态 解决方法: 如果是拿到执行结果 我们可以采用异步回调, 在这里我 ...

  5. python多线程之Event(事件)

    #!/usr/bin/env python # -*- coding: utf-8 -*- import time from threading import Thread, Event import ...

  6. python 线程之threading(五)

    在学习了Event和Condition两个线程同步工具之后还有一个我认为比较鸡肋的工具 semaphores 1. 使用semaphores的使用效果和Condition的notify方法的效果基本相 ...

  7. python 线程之 threading(二)

    在http://www.cnblogs.com/someoneHan/p/6204640.html 线程一中对threading线程的开启调用做了简单的介绍 1 在线程开始之后,线程开始独立的运行直到 ...

  8. python 线程之 threading(一)

    threading:基于对象和类的较高层面上的接口,threading模块在内部使用_thread模块来实现线程的对象以及常用的同步化工具的功能. 使用定制类的方式继承 threading.Threa ...

  9. python线程之condition

    cond = threading.Condition() # 类似lock.acquire() cond.acquire() # 类似lock.release() cond.release() # 等 ...

  10. python学习笔记——创建事件对象Event

    1 Event对象的基本概述 用 multiprocessing.Event 实现线程间通信,使用multiprocessing.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到 ...

随机推荐

  1. SQL Server datetime类型为null的有趣实验

    @data1 --变量 测试用 @data2 --当前时间 当@data1为null 则格式转换错误 直接控制台什么也不显示 也不报错 当定义'' 显示默认时间

  2. uniapp的子组件,当父组件下来刷新时,子组件一同刷新。

    最近做uniapp项目的时候,使用给父组件一个刷新属性,父组件有效果,但是子组件没有反应,网上查找了很多方法,最终采取通过刷新时,函数传值,子组件监听的方式.具体做法可以参照:https://blog ...

  3. Linux系统管理实战-DNS

    DNS 域名解析 DNS(domain name system) 解析方式 1.本地解析 /etc/hosts 127.0.0.1 localhost localhost.localdomain lo ...

  4. 模拟法NOIP题单

    模拟算法的试题训练, 重点针对试题分析环节的练习锻炼!! 考察阅读能力.分析能力.建模能力! 模拟法题目是最基础的题目,她不难,她复杂,她的实现往往需要足够的细心耐心! 练习这类题目能够使你掌握其他算 ...

  5. Mongodb+Stadio 3

    一.安装Mongodb  https://www.mongodb.com/download-center/community 请下载对应的系统 安装过程请不要选择 当所有的步骤值完成的时候,找到你的安 ...

  6. Kicad使用技巧--原理图复用

    平时主要使用AD.kicad和立创eda,最近在琢磨一下各个软件的使用技巧,提升一下画图效率,首先想到的就是原理图复用,我想象中的原理图复用应该像AutoCAD的图块功能一样. 这次先说kicad,摸 ...

  7. 微信小程序从0到上线(一)环境搭建

    前言: 专业术语: 步骤: 1.注册开发者账号:https://mp.weixin.qq.com/cgi-bin/wx,按照提示注册即可,如果是公司身份注册,需要公对公打款验证.

  8. 10.7 2020 实验 5:OpenFlow 协议分析和 OpenDaylight 安装

    一.实验目的 回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接:通过抓包获取 OpenFlow 协议,验证 OpenFlow 协议和版本,了解协议内容 ...

  9. PCRaster安装

    改了很久才import成功.期间查了不少东西,虽然大部分没用上,但还是记录一下. PCRaster的安装和个人的最终解决方法 Software for environmental modelling ...

  10. Java基础学习——循环取最接近某个值的方法

    if(diff<mindiff) mindiff=diff;//循环取最小值 float value = (float) fenzi/fenmu;//整数相除结果会自动转换为整数.即使强制转换为 ...