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使用xlrd模块操作Excel数据导入的方法
May 26 Python
python中requests小技巧
May 10 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
解决Python3下map函数的显示问题
Dec 04 Python
python程序文件扩展名知识点详解
Feb 27 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 Python
详解python如何引用包package
Jun 07 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
php5 and xml示例
2006/11/22 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
访谈节目策划方案
2014/05/15 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
刮痧观后感
2015/06/05 职场文书
歌舞青春观后感
2015/06/10 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
python迷宫问题深度优先遍历实例
2021/06/20 Python