Python多线程编程(八):使用Event实现线程间通信

 更新时间:2015年04月05日 11:47:05   投稿:junjie  
这篇文章主要介绍了Python多线程编程(八):使用Event实现线程间通信,,需要的朋友可以参考下

使用threading.Event可以实现线程间相互通信,之前的Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]我们已经初步实现了线程间通信的基本功能,但是更为通用的一种做法是使用threading.Event对象。使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,Event默认内置了一个标志,初始值为False。一旦该线程通过wait()方法进入等待状态,直到另一个线程调用该Event的set()方法将内置标志设置为True时,该Event会通知所有等待状态的线程恢复运行。

复制代码 代码如下:

'''
Created on 2012-9-9
 
@author: walfred
@module: thread.TreadTest8
''' 
 
import threading 
import time 
 
class MyThread(threading.Thread): 
    def __init__(self, signal): 
        threading.Thread.__init__(self) 
        self.singal = signal 
 
    def run(self): 
        print "I am %s,I will sleep ..."%self.name 
        self.singal.wait() 
        print "I am %s, I awake..." %self.name 
 
if __name__ == "__main__": 
    singal = threading.Event() 
    for t in range(0, 3): 
        thread = MyThread(singal) 
        thread.start() 
 
    print "main thread sleep 3 seconds... " 
    time.sleep(3) 
 
    singal.set()

运行效果如下:

复制代码 代码如下:

I am Thread-1,I will sleep ...
I am Thread-2,I will sleep ...
I am Thread-3,I will sleep ...
main thread sleep 3 seconds...
I am Thread-1, I awake...I am Thread-2, I awake...
 
I am Thread-3, I awake...

相关文章

  • Python基于正则表达式实现计算器功能

    Python基于正则表达式实现计算器功能

    这篇文章主要介绍了Python基于正则表达式实现计算器功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python中将两个或多个list合成一个list的方法小结

    Python中将两个或多个list合成一个list的方法小结

    python中,list这种数据结构很常用到,如果两个或者多个list结构相同,内容类型相同,我们通常会将两个或者多个list合并成一个,这样我们再循环遍历的时候就可以一次性处理掉了
    2019-05-05
  • 使用OpenCV去除面积较小的连通域

    使用OpenCV去除面积较小的连通域

    这篇文章主要介绍了使用OpenCV去除面积较小的连通域,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python常用内置函数的使用教程详解

    Python常用内置函数的使用教程详解

    Python官方文档对于内置函数的介绍较为简略,但这些内置函数在日常工作中却扮演着不可或缺的角色。这篇文章为大家介绍了Python常用内置函数的使用,需要的可以参考一下
    2023-04-04
  • python实现从ftp上下载文件的实例方法

    python实现从ftp上下载文件的实例方法

    在本篇文章里小编给大家整理了关于python实现从ftp上下载文件的实例方法,需要的朋友们可以参考下。
    2020-07-07
  • python数组处理之最值与下标问题

    python数组处理之最值与下标问题

    这篇文章主要介绍了python数组处理之最值与下标问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python如何提取chm数据

    Python如何提取chm数据

    这篇文章主要介绍了Python如何提取chm数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Python 如何访问外围作用域中的变量

    Python 如何访问外围作用域中的变量

    这篇文章主要介绍了Python 如何访问外围作用域中的变量的相关资料,需要的朋友可以参考下
    2016-09-09
  • Python实现登陆文件验证方法

    Python实现登陆文件验证方法

    本篇文章中我们给大家分享了关于Python实现登陆文件验证的方法和技巧,有兴趣的朋友们参考学习下。
    2018-10-10
  • 简单理解Python中的事件循环EventLoop

    简单理解Python中的事件循环EventLoop

    在 python 3中,加入了 asyncio 模块,来实现协程,其中一个很重要的概念是事件循环,本文我们就来自己实现一个相对简单的EventLoop,从而了解一下事件循环是如何进行运转的吧
    2023-10-10

最新评论