zoukankan      html  css  js  c++  java
  • 事件Event

    from multiprocessing import Event
    e = Event() # 事件创建之初,是阻塞状态
    print(e.is_set()) # 查看事件的状态
    # e.wait() # 根据事件的状态,选择阻塞 不 阻塞
    print('1111')
    e.set() # 修改事件的状态
    print(e.is_set())
    print('2222')
    e.clear() # 清除修改的状态,改为FALSE


    利用Event事件模拟的红绿灯事件
    import time,random
    from multiprocessing import Event,Process

    def cars(e,i):
    if not e.is_set():
    print('car %i 在等待'%i)
    e.wait()

    print('33[0;32;40mcar %i 通过了33[0m'%i)


    def light(e):
    while True:
    if e.is_set():
    e.clear()
    print('33[31m红灯亮了33[0m')
    else:

    e.set()
    print('33[32m绿灯亮了33[0m')
    time.sleep(2)

    if __name__ == '__main__':
    e = Event()
    e.is_set()
    p = Process(target=light,args=(e,))
    p.start()
    for i in range(20):
    car = Process(target=cars, args=(e,i))
    car.start()
    time.sleep(random.random())
    结果:

    绿灯亮了
    car 0 通过了
    car 1 通过了
    car 2 通过了
    红灯亮了
    car 3 在等待
    car 4 在等待
    car 5 在等待
    car 6 在等待
    car 7 在等待

  • 相关阅读:
    实现毛玻璃效果
    iOS-调用系统的短信和发送邮件功能,实现短信分享和邮件分享
    集成环信
    HTTP 方法:GET 对比 POST
    虚拟DOM
    javascript的回调函数 同步 异步
    jQuery中的Deferred和promise
    web性能
    JSONP
    java
  • 原文地址:https://www.cnblogs.com/bozhengheng/p/10296734.html
Copyright © 2011-2022 走看看