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
  • asp之家 网络编程 m.aspxhome.com