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在linux中输出带颜色的文字的方法
Jun 19 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
Python装饰器用法示例小结
Feb 11 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
python解释器spython使用及原理解析
Aug 24 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
通过实例学习Python Excel操作
Jan 06 Python
执行Python程序时模块报错问题
Mar 26 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 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
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
python实现中文转换url编码的方法
2016/06/14 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python 画函数曲线示例
2019/12/04 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
校三好学生主要事迹
2014/01/11 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
python​格式化字符串
2022/04/20 Python