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中实现对list做减法操作介绍
Jan 09 Python
python动态加载包的方法小结
Apr 18 Python
python字典键值对的添加和遍历方法
Sep 11 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
如何用itertools解决无序排列组合的问题
May 18 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
python实现梯度下降和逻辑回归
Mar 24 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 Python
关于python中remove的一些坑小结
Jan 04 Python
Python实现简单得递归下降Parser
May 02 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数组的使用方法小结
2010/09/23 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
php实现URL加密解密的方法
2016/11/17 PHP
PHP文件与目录操作示例
2016/12/24 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
使用jquery实现简单的ajax
2013/07/08 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
python动态加载变量示例分享
2014/02/17 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
毕业实习评语
2014/02/10 职场文书
公司开业庆典主持词
2014/03/21 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
监护人证明
2015/06/19 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript