协程的起因:
多线程和多进程:
解释器:
python的优缺点:
使用多线程和多进程的时机:
协程:
什么是理解上下文:
示例代码:
yield的使用
def aa():
a = 1
a+=1
print(a)
def fib(times):
n = 0
a,b = 0,1
while n<times:
yield b
#yield的应用, 在yield处断开但CPU在再次执行于此时可承接上一次执行的结果
a,b = b,a+b
n+=1
F = fib(7)
print(next(F))
print(next(F))
print(next(F))
print(next(F))
aa()
aa()
运行结果:
运行解析:
实例2:
import time
from greenlet import greenlet
def concumer(name):
while True:
baozi = yield #baozi = n
print('%s吃了包子%d'%(name,baozi))
time.sleep(1)
def producer():
r = c1.__next__()
r = c2.__next__()
n = 1
while True:
print('厨师一下子生产了2个包子')
c1.send(n)
c2.send(n+1)
n = n+2
if __name__ == '__main__':
c1 = concumer('c1')
c2 = concumer('c2')
p = producer()
运行结果:
。。。。。。