for x,y in my_dict.iteritems():
for z in y:
def done_callback(result):
code,content=result.get()
if code==0:
if content:
new_content.append(content)
else:
pass
else:
return error_html(environ,start_response,content)
try:
pool.apply_async(function_returns_tuple,(x,z,my_val),done_callback)
except Exception as e:
print e
当我看到new_content的值时,它是空的,也是回调函数 - done_callback没有被调用。我错过了某些部分?回调没有被调用
“当我看到new_content的值”在代码中从不显示,并且与问题相关。但它看起来像典型的异步问题。记住 - 任何来自异步的结果都应该只能从回调中访问(或者回调位于堆栈跟踪中的某个地方)。你可能会喜欢使用'concurrent.futures.ThreadPoolExecutor'来为你管理异步。 – Amadan
new_content只是一个列表,除了所有for循环以外,我都在这些列表之外进行检查。 – user3089927
然后它就像我预测的那样。假设你有四个孩子,你告诉他们:“我需要去工作,但是我的手机丢失了,所以每个人都会搜索,当你找到它的时候把它给我!”然后,而不是等待,*你马上去工作*。你的一个孩子找到了电话,然后试图把它给你,但你不在那里了。与此同时,你在工作,无电话,想知道为什么孩子们这些日子这么懒。 – Amadan