zl程序教程

您现在的位置是:首页 >  后端

当前栏目

PYTHON线程知识再研习G--线程间通信Event

Python线程 -- 知识 Event 间通信 研习
2023-09-14 08:59:36 时间

很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。
threading.Event 可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另一个线程调用set()方法将 内置标志设置为True时,Event通知所有等待状态的线程恢复运行。还可以通过isSet()方法查询Envent对象内置状态的当前值。

复制代码
import threading

import random

import time

class MyThread(threading.Thread):

 def __init__(self,threadName,event):

 threading.Thread.__init__(self,name=threadName)

 self.threadEvent = event

 def run(self):

 print "%s is ready" % self.name

 self.threadEvent.wait()

 print "%s run!" % self.name

sinal = threading.Event()

for i in range(10):

 t = MyThread(str(i),sinal)

 t.start()

sinal.set()
复制代码