首页 > 编程语言 > 详细

线程标准库模块--threading(之线程同步机制--事件Event)

时间:2021-01-11 14:38:24      阅读:29      评论:0      收藏:0      [点我收藏+]

事件Event

1、创建线程对象

  e = threading.Event()

2、事件阻塞函数

  e.wait([timeout])

3、设置事件

  e.set()

4、清除事件

   e.clear()

import threading 
from time import sleep 

#共享资源
s = None

#创建事件对象
e = threading.Event()

def bar():
    print("呼叫foo")
    global s 
    s = "天王盖地虎"

def foo():
    print("等口令")
    sleep(2)
    if s == "天王盖地虎":
        print("宝塔镇河妖")
    else:
        print("打死他")
    e.set()

def fun():
    print("呵呵....")
    sleep(1)
    e.wait()
    global s 
    s = "小鸡炖蘑菇"

b = threading.Thread(target = bar)
f = threading.Thread(target = foo)
t = threading.Thread(target = fun)

b.start()
f.start()
t.start()

b.join()
f.join()
t.join()

#结果
呼叫foo
等口令
呵呵....
宝塔镇河妖

 

线程标准库模块--threading(之线程同步机制--事件Event)

原文:https://www.cnblogs.com/longyuu/p/14261694.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!