• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-07) 26次浏览 已收录 0个评论

这篇文章主要介绍了Python多线程编程(八):使用Event实现线程间通信,,需要的朋友可以参考下

使用threading.Event可以实现线程间相互通信,之前的Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]我们已经初步实现了线程间通信的基本功能,但是更为通用的一种做法是使用threading.Event对象。使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,Event来源gao@daima#com搞(%代@#码网默认内置了一个标志,初始值为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实现线程间通信的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python多线程编程(八):使用Event实现线程间通信
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址