zoukankan      html  css  js  c++  java
  • 事件

    #模块: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()
  • 相关阅读:
    块数据加密模式
    "jobTracker is not yet running"(hadoop 配置)
    平衡搜索树
    Programming Assignment 3: Collinear Points
    Programming Assignment 2: Randomized Queues and Deques
    Programming Assignment 1: Percolation
    1007. Maximum Subsequence Sum (25)
    Link List
    1081. Rational Sum (20)
    strassen algorithm
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11719089.html
Copyright © 2011-2022 走看看