Python:多线程&事件
信号灯模拟 from multiprocessing import Process , Event import time # 事件通过is_set()的bool值表示e.wait()的阻塞状态 # True为非阻塞状态,False为阻塞状态 # 使用set(),把is_set()变成True,变为非阻塞状态 # 使用clear(),把is_set()变成False,变为阻塞状态 def tra ( e ) : print ( '绿灯亮' ) e . set ( ) while 1 : # 非阻塞状态,代表绿灯亮 if e . is_set ( ) : time . sleep ( 2 ) print ( '红灯亮' ) e . clear ( ) # 阻塞状态,代表红灯亮 else : time . sleep ( 2 ) print ( '绿灯亮' ) e . set ( ) def Car ( i , e ) : e . wait ( ) print ( '第%s辆车过去了' % i ) if __name__ == '__main__' : e = Event ( ) traffic_light = Process ( target = tra , args = ( e , ) ) traffic_light . start ( ) for i in range ( 50