zoukankan      html  css  js  c++  java
  • python thread.event()简单示例

    #-*-coding:utf-8-*-
    import threading
    import time
    event = threading.Event()
    def func():
        # 等待事件,进入等待阻塞状态
        print( '%s wait for event...' % threading.currentThread().getName() )
        event.wait()
        # 收到事件后进入运行状态
        print( '%s recv event.' % threading.currentThread().getName())
    t1 = threading.Thread(target=func)
    t2 = threading.Thread(target=func)
    t1.start()
    t2.start()
    
    time.sleep(2)
    # 发送事件通知
    print ('MainThread set event.')
    event.set()
    

     执行结果

    Event类:通用的条件变量。多个线程可以等待某个事件的发生,在事件发生后,所有的线程都会被激活。

    • event.wait(timeout)  当Flag为‘False’时,线程将被阻塞
    • clear                    将“Flag”设置为False
    • set                      将“Flag”设置为True
    • is_set                         返回当前‘Flag’

       这是一个比较关键的类,我在写线程池的时候看到python的threadpool模块也用到了。它的意义在于可以控制属于同一个线程类的多个实例化对象,让他们同时阻塞或者执行。配合队列来实现一个线程池非常好用。

  • 相关阅读:
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言|博客作业05
    C语言I博客作业04
    【lhyaaa】2020深圳大湾区比赛总结
  • 原文地址:https://www.cnblogs.com/qxh-beijing2016/p/14971636.html
Copyright © 2011-2022 走看看