python中gevent实现协程的效果

用户头像
大鱼
2019:08:06 17:32:52  阅读: 25  喜欢:
# gevent模块实现协程效果

import time

import gevent
from gevent import monkey
monkey.patch_all()    # 使得当前文件下所有的IO操作都会自动切换 如果不加它将不会识别其他IO操作 除了自己模块 例gevent.sleep()


def eat(name):
    print('{} eat 1'.format(name))
    time.sleep(3)
    print('{} eat 2'.format(name))


def play(name):
    print('{} play 1'.format(name))
    time.sleep(4)
    print('{} play 2'.format(name))


if __name__ == '__main__':
    start_time = time.time()
    g1 = gevent.spawn(eat, '大鱼')  # gevent提交任务 gevent.spawn(eat, '大鱼') 第一个参数调用的函数 第二个参数传参
    g2 = gevent.spawn(play, '李先生')
    # g1.join()  # 等待任务结束
    # g2.join() # 等待任务结束
    gevent.joinall([g1, g2])  # 等同于g1.join() g2.join()
    print(time.time() - start_time)
新的评论