Izhuceul 发表于 2018-8-14 13:45:24

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()
页: [1]
查看完整版本: python多线程异步 简单小栗子(包子大战)