Python编程之event对象的用法实例分析
作者:聪明的狐狸 时间:2023-02-19 09:29:50
本文实例讲述了Python编程中event对象的用法。分享给大家供大家参考,具体如下:
Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号被其他线程设置成真。这一点似乎和windows的event正好相反。 Event对象实现了简单的线程通信机制,它提供了设置信号,清除信号,等待等用于实现线程间的通信。
1.设置信号
使用Event的set()方法可以设置Event对象内部的信号标志为真。Event对象提供了isSet()方法来判断其内部信号标志的状态,当使用event对象的set()方法后,isSet()方法返回真.
2.清除信号
使用Event对象的clear()方法可以清除Event对象内部的信号标志,即将其设为假,当使用Event的clear方法后,isSet()方法返回假
3.等待
Event对象wait的方法只有在内部信号为真的时候才会很快的执行并完成返回。当Event对象的内部信号标志位假时,则wait方法一直等待到其为真时才返回。
可以使用Event让工作线程优雅地退出,示例代码如下:
# make thread exit nicely
class MyThread9(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
global event
while True:
if event.isSet():
logging.warning(self.getName() + " is Running")
time.sleep(2)
else:
logging.warning(self.getName() + " stopped")
break;
event = threading.Event()
event.set()
def Test9():
t1=[]
for i in range(6):
t1.append(MyThread9())
for i in t1:
i.start()
time.sleep(10)
q =raw_input("Please input exit:")
if q=="q":
event.clear()
if __name__=='__main__':
Test9()
希望本文所述对大家Python程序设计有所帮助。
标签:Python,event对象
0
投稿
猜你喜欢
Element-ui DatePicker显示周数的方法示例
2024-05-29 22:45:19
关于JavaScript中的this指向问题总结篇
2024-04-29 13:21:25
47个惊人的CSS3动画演示
2010-02-07 12:32:00
python粘包问题及socket套接字编程详解
2021-03-25 05:58:46
pip install命令安装扩展库整理
2021-10-13 21:49:14
对Python _取log的几种方式小结
2021-12-19 02:18:48
golang语言map全方位介绍
2024-05-22 10:20:33
Python如何加载模型并查看网络
2021-11-01 15:53:22
python面向对象 反射原理解析
2021-05-14 08:56:32
python实现将一维列表转换为多维列表(numpy+reshape)
2021-04-22 03:06:30
Python 异步等待任务集合
2022-08-14 17:23:22
热门问题python爬虫的效率如何提高
2023-06-11 03:21:40
在Vue中如何使用Cookie操作实例
2024-05-09 09:52:14
vue跳转后不记录历史记录的问题
2023-07-02 17:03:38
ASP连接11种数据库语法总结
2007-09-29 12:07:00
使用Django启动命令行及执行脚本的方法
2022-03-08 22:10:16
layDate插件设置开始和结束时间
2024-05-03 15:05:03
Python实现关键路径和七格图计算详解
2022-04-25 12:17:46
Python Socket传输文件示例
2023-10-18 17:19:00
anaconda安装后打不开解决方式(亲测有效)
2023-01-21 09:40:15