博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day32-1 事件Event
阅读量:4631 次
发布时间:2019-06-09

本文共 864 字,大约阅读时间需要 2 分钟。

事件Event-线程

每一个线程都是独立运行且状态不可预测。你把一个任务丢到子线程中,这个任务将异步执行,如何获取到这个任务的执行状态?使用threading库中的Event对象。对象包含一个可由线程设置的信号标志,线程直到等到该标志为真时再启动执行

event.isSet() # 返回event的状态值event.is_set()  # 返回event的状态值event.wait()  # 等待event状态值为Trueevent.set()  # 设置event的状态值为True,所有阻塞的线程激活进入就绪状态,等待操作系统调度event.clear()  # 恢复event的状态值为False

假设:一个线程负责启动服务器,启动服务器需要花一定的时间;另一个线程作为客户端,要连接服务器必须保证服务器已经启动。

import timefrom threading import Thread, Eventdef connect_server():    print('server ready ro started!')    time.sleep(2)    print('server starting....')    event.set()  # 事件标志设为Truedef connect_client():    print('wait server start....')    event.wait()  # 等待服务端启动,事件标识为True    print('client starting')    event.clear()      event = Event()server = Thread(target=connect_server)client = Thread(target=connect_client)server.start()client.start()

转载于:https://www.cnblogs.com/863652104kai/p/11146077.html

你可能感兴趣的文章
easyui的增删改
查看>>
Sql Server数据库性能优化之索引
查看>>
【Android UI】 Shape详… 分类: ...
查看>>
MFC 屏幕截图(libjpeg bmp转jpg)
查看>>
jQuery中 wrap() wrapAll() 与 wrapInner()的区别
查看>>
第二阶段冲刺第二天
查看>>
JS字符串转换成json对象。。。。
查看>>
yaml语法三大规则
查看>>
【HANA系列】SAP HANA的特点总结
查看>>
修改选中文字的背景色
查看>>
【CodeForces - 546C】Soldier and Cards (vector或队列)
查看>>
Ubuntu 18.04 初始化(server版本 )
查看>>
【BZOJ-1449&2895】球队收益&球队预算 最小费用最大流
查看>>
TCP与UDP
查看>>
FolderSync :The various features and how to use them
查看>>
LPC43xx SGPIO DMA and Interrupts
查看>>
《剑指offer》面试题16—反转链表
查看>>
multiprocessing模块
查看>>
复合数据类型,英文词频统计
查看>>
随手之题(水2)
查看>>