• python 进程事件


    1、作用

    通过信号量,控制全部进程进入阻塞状态,也可以通过控制信号量,解除全部进程的阻塞

    注意:定义的事件对象,默认状态是阻塞

    2、常用方法

    """
    对象.set()
        作用:设置一个事件的状态为True
    对象.clear()
        作用:设置一个事件的状态为False
    对象.is_set()
        作用:查看当前事件的状态
    对象.wait()
        根据事件的状态,判断是否阻塞
            若状态为True,则不阻塞
            若状态为False,则阻塞
        注意:阻塞的是 对象.wait()后面的内容
    """
    """
    红绿灯亮为永真
    """
    import time
    from multiprocessing import Process
    from multiprocessing import Event
    
    
    def car(e, car):
        if not e.is_set():
            print('%s阻塞' % car)
            e.wait()
        print('%s通过' % car)
    
    
    def traffic_light(e):
        while 1:
            if e.is_set():
                e.clear()
                print('红灯亮')
            else:
                e.set()
                print('绿灯亮')
            time.sleep(2)
    
    
    if __name__ == '__main__':
        e = Event()
        p = Process(target=traffic_light, args=(e, ))
        p.start()
        for i in range(30):
            p1 = Process(target=car, args=(e, 'car%s' % i ))
            p1.start()
            time.sleep(1)
  • 相关阅读:
    GITHUB常见命令
    GITHUB常用命令
    java构建简单的HTTP服务器
    是否会被锁
    GITHUB使用指南
    GITHUB使用指南、
    C#
    金蝶后台表对应
    金蝶K3表
    nodejs nodejs的操作
  • 原文地址:https://www.cnblogs.com/wt7018/p/11055498.html
Copyright © 2020-2023  润新知