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通过socket查询whois的方法
Jul 18 Python
K-近邻算法的python实现代码分享
Dec 09 Python
Python机器学习之K-Means聚类实现详解
Feb 22 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
python+selenium打印当前页面的titl和url方法
Jun 22 Python
深入浅析Python传值与传址
Jul 10 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
python实现ROA算子边缘检测算法
Apr 05 Python
PyTorch dropout设置训练和测试模式的实现
May 27 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
php格式化金额函数分享
2015/02/02 PHP
php安装swoole扩展的方法
2015/03/19 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
Python多进程编程常用方法解析
2020/03/26 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
施工协议书范本
2014/04/22 职场文书
服装设计专业自荐信
2014/06/17 职场文书
如何写股份合作协议书
2014/09/11 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
安全生产会议制度
2015/08/06 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
干部理论学习心得体会
2016/01/21 职场文书
年终工作总结范文
2019/06/20 职场文书
Redis过期数据是否会被立马删除
2022/07/23 Redis