1
uwh0am1 2018-09-13 13:09:23 +08:00
|
2
kidlfy OP 或者说,我并不太理解在并发执行函数时怎么能得到每个函数的返回值? 不用 gevent 有别的方法吗
|
3
xpresslink 2018-09-13 15:30:16 +08:00
这么简单问题还用问?
import queue q = queue.Queue(maxsize=0) 把 return 改成 q.put( json_result['datetime']) 用 q.get()一个一个取,或者 list(q.queue) 一起取 |
4
kidlfy OP @xpresslink 我就是这么取的,只是想知道 return 能不能 直接得到
|
5
xpresslink 2018-09-14 11:01:19 +08:00
|
6
kidlfy OP @xpresslink 嗯嗯,我理解一点了,谢谢
|
7
fzzff 2018-09-14 18:35:36 +08:00
from gevent import monkey
monkey.patch_socket() monkey.patch_ssl() import gevent import requests import simplejson as json from tornado import gen @gen.coroutine def fetch(pid): response = requests.get('https://www.baidu.com') result = response.text # json_result = json.loads(result) # datetime = json_result['datetime'] print('Process ', result) raise gen.Return(result) # return result def asynchronous(): threads = [] for i in range(1,10): threads.append(gevent.spawn(fetch, i)) gevent.joinall(threads) 可以这样 |