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

任务例子:喝水、吃饭动做须要耗时1S多线程

 

单任务:(耗时20s)spa

for i in range(10):线程

    print('a正在喝水')orm

    time.sleep(1)协程

    print('a正在吃饭')event

    time.sleep(1)form

 

1、多线程(耗时10s)方法

协程gevent模块im

代码以下: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)    ])
相关文章
相关标签/搜索