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

作者:junjie 时间:2023-05-07 15:25:50 

使用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,多线程,Event,线程间通信
0
投稿

猜你喜欢

  • 关于python中remove的一些坑小结

    2022-09-22 02:14:31
  • 详解Python异常处理中的Finally else的功能

    2023-08-19 01:01:20
  • golang实现跨域访问的方法

    2024-02-15 18:33:31
  • Python中最大最小赋值小技巧(分享)

    2021-08-26 06:07:44
  • Golang Mutex互斥锁深入理解

    2024-04-25 13:18:08
  • Git的使用规范流程总结

    2023-03-15 06:26:59
  • vscode单击新文件时覆盖旧文件的解决方法

    2022-02-16 09:09:48
  • Python中的基本数据类型介绍

    2023-07-21 22:26:26
  • pip安装python库时报Failed building wheel for xxx错误的解决方法

    2021-12-12 04:55:53
  • sql索引失效的情况以及超详细解决方法

    2024-01-21 09:25:30
  • selenium中常见的表单元素操作方法总结

    2021-06-15 23:54:32
  • SQL开窗函数的具体实现详解

    2024-01-26 12:16:37
  • JS实现FLASH幻灯片图片切换效果的方法

    2024-04-22 13:01:57
  • python2.7+selenium2实现淘宝滑块自动认证功能

    2023-06-06 14:29:34
  • python基于openpyxl生成excel文件

    2022-08-03 03:10:47
  • MySQL数据库对dvbbs.php全文搜索的完全分析

    2010-06-11 13:25:00
  • PHP中Static(静态)关键字功能与用法实例分析

    2024-05-03 15:53:52
  • Ubuntu权限不足无法创建文件夹解决方案

    2021-04-06 01:31:27
  • Python实现钉钉发送报警消息的方法

    2022-11-18 06:06:44
  • javascript检测对象中是否存在某个属性判断方法小结

    2024-04-30 10:10:54
  • asp之家 网络编程 m.aspxhome.com