python编程中的并发------协程gevent模块

任务例子:喝水、吃饭动作需要耗时1S

 

单任务:(耗时20s)

for i in range(10):

    print('a正在喝水')

    time.sleep(1)

    print('a正在吃饭')

    time.sleep(1)

 

一、多线程(耗时10s)

协程gevent模块

代码如下:

# 定义一个gevent的线程阻塞规则
# 任何的阻塞都将切换协程
monkey.patch_all()

def start(num):
print('--开始执行任务{}--'.format(num))
time.sleep(2)
print('--结束执行任务{}--'.format(num))

if __name__ == '__main__':
# 调用协程的方法1
# g1 = gevent.spawn(start, 1)
# g2 = gevent.spawn(start, 2)
# g3 = gevent.spawn(start, 3)
# join方法为阻塞方法,调用即开始切换协程
# g1.join()
# g2.join()
# g3.join()

#调用协程的方法2
gevent.joinall([
gevent.spawn(start,1),
gevent.spawn(start,2),
gevent.spawn(start,3)
])

 


 

上一篇:安装vue-cli错误


下一篇:顺序容器——vector