python 協程 gevent模組

2021-10-04 02:04:55 字數 814 閱讀 8348

import requests

# 匯入 gevent

import gevent

# 由於切換是在io操作時自動完成 所以gevent需要修改python自帶的一些標準庫 這一過程在啟動時通過monkey patch(猴子補丁)完成

from gevent import monkey; monkey.patch_socket(

)# 注釋這句話,則協程不會起效果,需要寫在導包的語句下面

from gevent import timeout

deffunc

(flag)

:# 延時操作

res = requests.get(

'')if res.status_code ==

200:

print

('{}-完成任務'

.format

(flag)

)return flag

if __name__ ==

'__main__'

:# 建立任務池

li =

for i in

range(10

):# 建立任務

g = gevent.spawn(func, i)

# 新增到任務池中

# 執行任務, gevent.joinall 接受乙個任務池

gevent.joinall(li)

#接收任務池中任務的返回值

for i in li:

print

(i.value,

dir(i)

)

gevent實現協程

1 yield實現 import time def task 1 while true print 1 time.sleep 0.1 yield def task 2 while true print 2 time.sleep 0.1 yield def main t1 task 1 建立迭代器 t...

gevent 協程用法

文章介紹了一種採用迴圈的方式生產協程列表,並可以向協程函式傳遞引數。協程引用 import gevent from gevent import monkey,pool monkey.patch all 初始化協程池 poolnum 10 pool pool.pool poolnum 例項化乙個協程池...

Python使用gevent實現協程

coding utf8 import requests import gevent from gevent import monkey monkey.patch all 用於將標準庫中大部分阻塞式呼叫修改為協作式執行 def fetch url print get format url respon...