Event对象用于线程间的相互通信,实际上Condition对象在一定程度上已经实现线程间的通信,但Condition对象是每次仅有一个线程对共享数据进行操作,其他线程则等待。而Event对象是由线程设置的信号标志,如果信号标志为真,则其他线程等待直到信号解除。

Event对象方法:

set():设置Event对象内部的信号为真,

isSet():判断内部信号标志的状态,当Event对象使用set()方法后,isSet()方法返回真

clear():清除内部信号标志,当使用clear()方法后,isSet()方法就会返回假

wait():当内部信号为真的时才会执行,如果内部信号为假则会一直等待

import threading            # 导入threading模块class mythread(threading.Thread):    def __init__(self,threadname):        threading.Thread.__init__(self,name = threadname)    def run(self):        global event        # 使用全局Event对象        if event.isSet():   # 判断Event对象内部信号标志            event.clear()   # 若已设置标志则清除            event.wait()    # 调用wait方法            print self.getName()        else:            print self.getName()            event.set() # 设置Event对象内部信号标志event = threading.Event()       # 生成Event对象event.set()             # 设置Event对象内部信号标志tl = []for i in range(10):    t = mythread(str(i))    tl.append(t)            # 生成线程列表                 for i in tl:    i.start()           # 运行线程######运行结果######>>> 1032547698