[toc]
python基础二十五 并发编程-多协程
1.协程
1.1 概念
协程是比线程更小的执行单元,也叫微线程
一个线程作为一个容器里面可以放置多个协程
1.2 协程作用
只切换函数调用即可完成多线程,可以减少CPU的切换
协程自己主动让出CPU,不需要系统调用
1.3 协程实现
1.3.1 greenlet(第三方模块,手动切换函数执行)
#协程间来回切换,不需要CPU的调用
#需要先安装greenlet
pip install greenlet
from greenlet import greenlet
import time
def t1():
while True:
print("AAA") #第一步先打印AAA
gr2.switch() #第二步让协程gr2进来执行,gr1保留此处的执行位置,协程gr2执行的是t2函数
time.sleep(1)
def t2():
while True:
print("bbb") #第三步打印bbb
gr1.switch() #第四步让协程gr1进来执行,gr2保留此处的执行位置,协程gr1执行的是t1函数
time.sleep(1)
gr1 = greenlet(t1) #创建一个协程对象
gr2 = greenlet(t2)
gr1.switch() #此时会执行t1函数