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)    ])
相關文章
相關標籤/搜索