[英]Am I using python's apply_async correctly?
這是我第一次嘗試在Python中使用多重處理。 我正在嘗試在數據框df
按行並行處理函數fun
。 回調函數只是將結果附加到一個空列表中,稍后我將對其進行排序。
這是使用apply_async
的正確方法嗎? 非常感謝。
import multiprocessing as mp
function_results = []
async_results = []
p = mp.Pool() # by default should use number of processors
for row in df.iterrows():
r = p.apply_async(fun, (row,), callback=function_results.extend)
async_results.append(r)
for r in async_results:
r.wait()
p.close()
p.join()
看起來使用map或imap_unordered (取決於您是否需要對結果進行排序)會更適合您的需求
import multiprocessing as mp
#prepare stuff
if __name__=="__main__":
p = mp.Pool()
function_results = list(p.imap_unorderd(fun,df.iterrows())) #unordered
#function_results = p.map(fun,df.iterrows()) #ordered
p.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.