
1 uwh0am1 2018-09-13 13:09:23 +08:00 |
2 kidlfy OP 或者说,我并不太理解在并发执行函数时怎么能得到每个函数的返回值? 不用 gevent 有别的方法吗 |
3 xpresslink 2018-09-13 15:30:16 +08:00 这么简单问题还用问? impot 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) 可以这样 |