协程
协程
一、创建协程
- 协程是一种用户态的轻量级线程(本质是一个单线程)
- 目的是最大化地利用好I/O阻塞的时间
- 最基础的协程通过yield来实现不同任务之间的切换
- 优点: 高并发+高扩展性+低成本
- 缺点: 无法利用多核资源
1. 通过greenlet实现
from greenlet import greenlet
gr1 = greenlet(func_1) # 创建greenlet对象
gr2 = greenlet(func_@)
gr1.switch() # 切换其他协程
2. 通过gevent实现
import gevent
# 最大程度地监听I/O阻塞
from gevent import mokey
monkey.patch_all()
gevent.joinall([
gevent.spawn(func_1) # 第二个参数可以填写函数参数
gevent.spawn(func_2)
])
gevent.sleep() # 模拟实现真正地I/O阻塞(不同于time.sleep),用于函数中,让协程进行切换

浙公网安备 33010602011771号