码迷,mamicode.com
首页 > 编程语言 > 详细

python多线程异步 简单小栗子(包子大战)

时间:2017-04-23 23:16:02      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:python

#coding:utf-8
import threading
import time

def producer():
    print u‘tantianran: 等人来买包子...‘
    event.wait() #一开始为阻塞,如果检测到标志位被设置成了true(标志位默认是flase),则继续往下执行
    event.clear() #将标志位设置回flase
    print u‘tantianran: 生产包子中...‘
    time.sleep(5)
    print u‘tantianran: 催你妹啊!你的包子做好了...‘
    event.set()  # 设置标志位为true,通知线程t2,包子做好了

def consumer():
    print u‘tanzhenxing: 去买包子...‘
    event.set() #设置标志位为true,通知t1线程要去买包子

    time.sleep(2)
    while True:
        if event.isSet():
            print u‘tanzhenxing: 买到包子了,包子真好吃...谢谢!‘
            break
        else:
            print u‘tanzhenxing: 包子还尼马没做好?‘
            time.sleep(2)


if __name__ == ‘__main__‘:
    event = threading.Event()

    t1 = threading.Thread(target=producer)
    t2 = threading.Thread(target=consumer)
    t1.start()
    t2.start()


执行结果:

/usr/bin/python2.7 /home/toby/PycharmProjects/test-20170419/01.py
tantianran: 等人来买包子...
tanzhenxing: 去买包子...
tantianran: 生产包子中...
tanzhenxing: 包子还尼马没做好?
tanzhenxing: 包子还尼马没做好?
tantianran: 催你妹啊!你的包子做好了...
tanzhenxing: 买到包子了,包子真好吃...谢谢!

本文出自 “运维交流Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1918600

python多线程异步 简单小栗子(包子大战)

标签:python

原文地址:http://freshair.blog.51cto.com/8272891/1918600

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!