pythonのEventイベントフラグ

1151 ワード

Event:
Eventはスレッドにあるフラグで、いつでも切り替えられます
event = threading.Event()
 
フラグビットの設定:event.set()
クリアフラグ:event.clear()
フラグビットを設定か否かを判断する:event.is_set()
待機設定:event.wait()
 
信号をシミュレートしてeventを使用します.
標識位置が設定されていて、青信号を代表して、直接通行します.
フラグビットがクリアされ、赤信号を表し、waitは青信号を待つ
'''   '''
import threading,time

#event           ,      
event = threading.Event()

def Lighter():
    count=0
    event.set()
    while True:
        if count > 3 and count <= 6:  #30-60    
            event.clear()   #  ,    
            print("\033[41;1m   \033[0m")
        elif count > 6:
            event.set() #    
            count = 0   #     
        else:
            print("\033[42;1m   \033[0m")
        time.sleep(1);
        count += 1

def Car(name):
    while True:
        if event.is_set():
            print(name,'  ')
            time.sleep(1)
        else:
            print(name,'  ')
            time.sleep(1)

light = threading.Thread(target=Lighter,)
light.start()
car = threading.Thread(target=Car,args=('  ',))
car.start()