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线程锁(thread)学习示例
Dec 04 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 Python
Python+django实现文件下载
Jan 17 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python单元测试模块doctest的具体使用
Feb 10 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面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
如何使用PHP session
2015/04/21 面试题
儿科护士自我鉴定
2013/10/14 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
Python中字符串对象语法分享
2022/02/24 Python
Docker部署Mysql8的实现步骤
2022/07/07 Servers