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...

相关文章

  • Keras搭建自编码器操作

    Keras搭建自编码器操作

    这篇文章主要介绍了Keras搭建自编码器操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python 调用 C++ 传递numpy 数据详情

    Python 调用 C++ 传递numpy 数据详情

    这篇文章主要介绍了Python 调用 C++ 传递numpy 数据详情,文章主要分为两部分,c++代码和python代码,代码分享详细,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • 基于python 处理中文路径的终极解决方法

    基于python 处理中文路径的终极解决方法

    下面小编就为大家分享一篇基于python 处理中文路径的终极解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中使用Tkinter模块创建GUI程序实例

    Python中使用Tkinter模块创建GUI程序实例

    这篇文章主要介绍了Python中使用Tkinter模块创建GUI程序实例,本文给出了创建窗口、文本框、按钮等实例,需要的朋友可以参考下
    2015-01-01
  • 详解Python中的序列化与反序列化的使用

    详解Python中的序列化与反序列化的使用

    这篇文章主要介绍了详解Python中的序列化与反序列化的使用,针对pickle和cPickle对象进行了探究,需要的朋友可以参考下
    2015-06-06
  • Python字典操作得力助手Get()函数的使用

    Python字典操作得力助手Get()函数的使用

    在Python编程中,get()函数是字典(Dictionary)对象中非常有用的函数,本文将详细介绍get()函数的用法及示例代码,感兴趣的可以了解一下
    2023-11-11
  • python 如何将数据写入本地txt文本文件的实现方法

    python 如何将数据写入本地txt文本文件的实现方法

    这篇文章主要介绍了python 如何将数据写入本地txt文本文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Python通过TensorFLow进行线性模型训练原理与实现方法详解

    Python通过TensorFLow进行线性模型训练原理与实现方法详解

    这篇文章主要介绍了Python通过TensorFLow进行线性模型训练原理与实现方法,结合实例形式详细分析了Python通过TensorFLow进行线性模型训练相关概念、算法设计与训练操作技巧,需要的朋友可以参考下
    2020-01-01
  • 基于Opencv的图像卡通化实现代码

    基于Opencv的图像卡通化实现代码

    这篇文章主要介绍了基于Opencv的图像卡通化,主要工具是高斯滤波器、细节增强滤波器、双边滤波、拉普拉斯滤波器,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • 浅谈pyhton学习中出现的各种问题(新手必看)

    浅谈pyhton学习中出现的各种问题(新手必看)

    下面小编就为大家带来一篇浅谈pyhton学习中出现的各种问题(新手必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05

最新评论