python—yield实现单线程的异步并发
python—yield实现单线程的异步并发
import time def consumer(name): print("%s 准备吃包子了!" %name) while True: baozi = yield print("包子%s来了,被%s吃了!" %(baozi,name)) def producer(name): c = consumer('A') c2 = consumer('B') c.__next__() c2.__next__() print("老子开始准备做包子") for i in range(10): time.sleep(1) print("做了两个包子") c.send(i) c2.send('XXXX') producer('wangxu') /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/admin/PycharmProjects/s18/day3/yield.py A 准备吃包子了! B 准备吃包子了! 老子开始准备做包子 做了两个包子 包子0来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子1来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子2来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子3来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子4来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子5来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子6来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子7来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子8来了,被A吃了! 包子XXXX来了,被B吃了! 做了两个包子 包子9来了,被A吃了! 包子XXXX来了,被B吃了! 进程已结束,退出代码0