3
저는 Gevent를 배우고 있지만 greenlet에서 호출 한 함수가 반환 한 값을 가져올 수 없습니다. 다음 코드 :Python : Gevent Greenlet에서 가치 얻기
import gevent.monkey
gevent.monkey.patch_socket()
import gevent
from gevent import Greenlet
import urllib2
import simplejson as json
def fetch(pid):
response = urllib2.urlopen('http://time.jsontest.com')
result = response.read()
json_result = json.loads(result)
datetime = json_result['time']
print('Process %s: %s' % (pid, datetime))
return json_result['time']
def synchronous():
for i in range(1,10):
fetch(i)
def asynchronous():
threads = [Greenlet.spawn(fetch, i) for i in range(10)]
result = gevent.joinall(threads)
print [Greenlet.value(thread) for thread in threads]
print('Synchronous:')
synchronous()
print('Asynchronous:')
asynchronous()
나에게 오류 제공 :
print [Greenlet.value(thread) for thread in threads]
AttributeError: type object 'Greenlet' has no attribute 'value'
내가 잘못하고있는 중이 야 무엇을하고 어떻게 각 greenlet에서 값을받을 수 있나요?
덕분에 피터를 원한다! 내 다른 Gevent 질문을 도와 줄 수 있습니까? http://stackoverflow.com/questions/20580252/python-requests-module-throws-exception-with-gevent – tldr
'result = gevent.joinall (threads)'이름에 할당 그래도 필요하지 않습니다. – Babu
@Babu, 네가'joinall'에'timeout' 키워드 인자를 사용하지 않는다면 그 결과를 무시할 수 있습니다. –