併發編程-協程-21協程併發-gevent模塊

一丶Gevent的做用

讓協程實現檢測IO,實現併發python

二丶Gevent代碼實現

from gevent import monkey;monkey.patch_all()  # 因爲該模塊常常被使用 因此建議寫成一行
from gevent import spawn
import time

def heng():
    print("哼")
    time.sleep(2)
    print('哼')

def ha():
    print('哈')
    time.sleep(3)
    print('哈')

def heiheihei():
    print('嘿嘿嘿')
    time.sleep(5)
    print('嘿嘿嘿')

start = time.time()
g1 = spawn(heng)
g2 = spawn(ha)  # spawn會檢測全部的任務
g3 = spawn(heiheihei)
g1.join()
g2.join()
g3.join()
# heng()
# ha()
print(time.time() - start)

spawn方法會建立能檢測io並實現併發任務的協程對象併發

當遇到ip組測未完成會切換其餘的協程繼續spa

最終時間會在最長的協程所需時間結果多一點些,這一些指的是io切換消耗的時間code

相關文章
相關標籤/搜索