Python编程之event对象的用法实例分析


Posted in Python onMarch 23, 2017

本文实例讲述了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 相关文章推荐
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
matplotlib实现区域颜色填充
Mar 18 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
Python数据类型之List列表实例详解
May 08 Python
PHP统计代码行数的小代码
Sep 19 Python
Python input函数使用实例解析
Nov 22 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
selenium如何定位span元素的实现
Jan 13 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 #Python
python3中dict(字典)的使用方法示例
Mar 22 #Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 #Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 #Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 #Python
python条件变量之生产者与消费者操作实例分析
Mar 22 #Python
Python实现遍历目录的方法【测试可用】
Mar 22 #Python
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
python对csv文件追加写入列的方法
2019/08/01 Python
Python缓存技术实现过程详解
2019/09/25 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
C++的几个面试题附答案
2016/08/03 面试题
机械设计制造专业个人求职信
2013/09/25 职场文书
研发工程师的岗位职责
2013/11/18 职场文书
给客户的道歉信
2014/01/13 职场文书
经济担保书范文
2014/04/02 职场文书
财务会计专业自荐书
2014/06/30 职场文书
机器人瓦力观后感
2015/06/12 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python