欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-29 17:07:18
...
使用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实现线程间通信

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • Python多线程编程(八):使用Event实现线程间通信
  • 专题推荐

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

    认证0级讲师

    推荐视频教程
  • Python多线程编程(八):使用Event实现线程间通信javascript初级视频教程
  • Python多线程编程(八):使用Event实现线程间通信jquery 基础视频教程
  • 视频教程分类