python 线程之同步条件(Event)

# !/usr/bin/python
# -*- coding:utf-8 -*- 
# ++++++++++++++++++++
# author: FMspider
# time: 2018-5-3 17:16
# function: 同步条件(Event) 条件同步和条件变量同步差不多意思,只是少了锁功能,因为条件同步设计于不访问共享资源的
#           条件环境。event = threading.Event():条件环境对象,初始值为False。

# event.siSet():返回event的状态值
# event.wait(): 返回event.isSet() == False装阻塞线程
# event.set(): 设置event的状态值为TRUE,所有阻塞池的线程激活进入就绪状态,等待操作系统调试
# event.clear(): 恢复event的状态值为False

import time
import threading

class Boss(threading.Thread):
    def run(self):
        print("BOSS:今晚需要加班22:00.")
        event.isSet() or event.set()
        time.sleep(5)
        print("22:00 BOSS: 可以下班了。")
        event.isSet() or event.set()


class Worker(threading.Thread):
    def run(self):
        event.wait()
        print("Worker: 哎。命苦啊!")
        time.sleep(1)
        event.clear()
        event.wait()
        print("Worker: ohYeah!")

if __name__ == '__main__':

    event = threading.Event()
    threads = []
    for i in range(5):
        threads.append(Worker())
    threads.append(Boss())

    for t in threads:
        t.start()

    for t in threads:
        t.join()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值