事件

#模块:Event
#导入方法:from multiprocessing import Process,Event
#模块方法:
    e=Event()
    e.is_set()        #当is_set()的值为True时,e.wait()是非阻塞状态
                    #当is_set()的值为False时,e.wait()是阻塞状态
    e.wait()        #根据is_set的bool值决定阻塞或非阻塞状态
    e.set()            #将is_set()设为True
    e.clear()        #将is_set()设为False
#使用方法:交通信号灯原理


##########交通信号灯模拟
from multiprocessing import Process,Event
import time

def Trafficlight(e):
    while 1:
        if e.is_set():      #当此条件为True时,表示绿灯,车辆可以通过
            time.sleep(5)   #表示绿灯的时间为5秒
            print("33[31m红灯亮了33[0m")    #5秒后红灯亮
            e.clear()       #clear将is_set设为False
        else:
            time.sleep(5)   #红灯的时间为5秒
            print("33[32m 绿灯亮了33[0m")   #5秒后绿灯亮
            e.set()         #set将is_set设为True

def Car(i,e):
    e.wait()    #当wait为False时,此时会阻塞,当wait为True时,此时程序正常运行,所以受到信号灯is_set()影响
    print("第{}辆车通过了".format(i))


if __name__ == '__main__':
    e=Event()
    #信号灯进程
    light=Process(target=Trafficlight,args=(e,))
    light.start()
    #50辆车
    for i in range(50):
        car=Process(target=Car,args=(i,e))
        car.start()
原文地址:https://www.cnblogs.com/god-for-speed/p/11719089.html