Python生成器:单线程协程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python生成器:单线程协程相关的知识,希望对你有一定的参考价值。

 1 #author F
 2 
 3 #单线程下的并行效果 (生成器)
 4 #协程
 5 
 6 import time
 7 def consumer(name):
 8     print("%s 准备吃包子啦" %name)
 9     while True:
10         baozi = yield
11         print("包子%s来啦 被%s吃啦!" %(baozi, name))
12 
13 c = consumer("WW")  #此时的consumer已经不是函数 他是一个生成器 此时只是初始化了一个生成器
14 # c.send("[牛肉馅]")
15 c.__next__()  #必须要执行一个next 语句才会走到yield处
16 c.send("[猪肉馅]")  #send语法往生成器中传参
17 
18 def producer(name):
19     c = consumer("A")
20     c2 = consumer("B")
21     c.__next__()
22     c2.__next__()
23     print("老子开始准备做包子了!")
24     for i in range(1, 11):
25         time.sleep(1)
26         print("做了一份包子!俩人分着吃")
27         c.send(i)
28         c2.send(i)
29 
30 producer("F")

 

以上是关于Python生成器:单线程协程的主要内容,如果未能解决你的问题,请参考以下文章

python----单线程实现并发之协程

Python爬虫--高性能的异步爬虫

python 协程

并发编程-协程

Python来实现并发的Web Server,其中采用了多进程多线程协程单进程单线程非阻塞的方式

Python 之协程