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