当前位置: 首页 > news >正文

事件(Event)

事件Event主要用于唤醒正在阻塞等待状态的线程;

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

Event() 可以创建一个事件管理标志,该标志(event)默认为False,event对象主要有四种方法可以调用:

#coding=utf-8import threading
import timedef xuexi(name):# 等待事件进入等待阻塞状态print(f'{name}已经启动')print(f'{name}已经进入学习状态!')time.sleep(1)event.wait()#收到事件后进入运行状态print(f'{name}收到通知了。')print(f'{name}正在学习python')if __name__ == '__main__':event = threading.Event()#创建新的线程thread1 = threading.Thread(target=xuexi, args=("Alone", ))thread2 = threading.Thread(target=xuexi, args=("Ruby", ))#开启线程thread1.start()thread2.start()time.sleep(10)# 发送事件通知print('--------->>>>>主线程通知小伙伴开始学习!')event.set()

相关文章:

  • 同时装两个MySQL, 我在MySQL5的基础上, 安装MySQL8
  • 循环数组中相邻元素的最大差值
  • java BIO/NIO/AIO
  • 【unitrix】 1.3 Cargo.toml 文件解析
  • SM3算法Python实现(无第三方库)
  • 【GitOps】Kubernetes安装ArgoCD,使用阿里云MSE云原生网关暴露服务
  • 山东大学《Web数据管理》期末复习宝典【万字解析!】
  • HarmonyOS运动开发:打造便捷的静态快捷菜单
  • ArkUI-X在Android上使用Fragment开发指南
  • ThreadLocal原理及内存泄漏分析
  • 【从零学习JVM|第八篇】深入探寻堆内存
  • Android 开发中,Intent 和 Bundle 组件间传递数据的几种方式
  • RedHat主机配置日志留存策略:从4周延长至6个月
  • FramePack 与其他视频生成工具的横向对比:优势、短板与差异化竞争
  • GitHub 上 PAT 和 SSH 的 7 个主要区别:您应该选择哪一个?
  • DAY 52 神经网络调参指南
  • 小白讲强化学习:从零开始的4x4网格世界探索
  • C/C++内存分布和管理
  • 以楼宇自控技术赋能节能,驱动绿色建筑可持续发展进程
  • PCL 导入VS配置的大量依赖项名称快速读取
  • 上海微网站制作/站长工具查询网站信息
  • 做外贸那里发广告网站/推广软件的渠道有哪些
  • wordpress复制按钮插件/seo效果分析
  • 商城类网站怎么推广/地推拉新app推广接单平台免费
  • 免费的小网站/网站搜索优化价格
  • 工商总局企业信息查询/广州seo站内优化