我正确使用python的apply_async吗?
这是我第一次尝试在Python中使用多处理。我试图通过行在我的数据框df
上并行化我的功能fun
。回调函数只是将结果追加到一个空列表中,稍后我将对其进行排序。我正确使用python的apply_async吗?
这是正确的使用方法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(dependending你是否需要你的结果进行排序或不)会更好地满足您的需求
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()
以上是 我正确使用python的apply_async吗? 的全部内容, 来源链接: utcz.com/qa/257160.html