def odd(max):
n = 0
while n < max:
yield 2*n
n = n + 1
# print(2*n)
return 'done'
f = odd(11)
# print(f)
# for i in f:
# print(i)
while True:
try:
x = next(f)
print('g', x)
except StopIteration as e:
print("Generator return value:", e.value)
break
运行结果为:
g 0
g 1
g 2
g 3
g 4
g 5
g 6
g 7
g 8
g 9
g 10
generator return value: done
定义两个模型:
一个是生产包子的。(生成器)
另一个是吃包子的。(迭代器)
这段功能实现了异步IO的雏形,也是一个简单的协程处理方式。
协程的特点:实际是串行方式分开执行的,但由于运行效果快,给人的感觉像是并行。
因此,协程也叫作:单线程下的并行执行效果。
协程是包含在线程里的一个单位,线程时进程的一个单位。
例如:enginx在异步单线程下,比多线程要快好多倍,也就是这种效果。
import time
def Consumer(name):
print('%s has started to e