gevent 协程:
gevent会把延时的时间拿去做其他的事情,相对于线程(threading)和进程(multiprocessing)占用资源较少
import gevent
from gevent import monkey
import time
monkey.patch_all() # 打补丁,把程序中的延时(sleep)、接收(recv)等 等待的操作都自动变换成gevent
def work(n):
for i in range(5):
print(n, i)
time.sleep(0.5) # 等待时间要写成time.sleep(),写sleep时则变成单协程运行
def main():
gevent.joinall([
gevent.spawn(work, 'w1'), # 程序运行完w1的第一次循环时,等待时,gevent自动执行w2的第一次循环,再次运行到等待时间时,则跳回W1,依次运行 gevent会把延时的时间拿去做其他的事情
gevent.spawn(work, 'w2')
])
if __name__ == '__main__':
main()