【发布时间】:2018-05-28 20:06:47
【问题描述】:
我正在尝试运行一个与 pool.apply_async 配合得很好的胖函数
现在,我正在尝试 pool.map_async 函数(通过 functools.partial 方法传递了 2 个参数),程序立即结束,没有任何错误或异常......
files = list_files(mypath) # list of files to process
csv_rows = None
result = mp.Queue() #result queue from multiprocessing module
pool = mp.Pool(4)
t = pool.map_async( partial(process_file, result), files)
t.wait() # it doesn't wait HERE ... program exits immediately - no errors
关于我可能遗漏什么的任何线索?
【问题讨论】:
-
告诉我们
process_file。另外,如果您只想立即等待,不妨改用pool.map()。 -
您可能确实在某处的
process_file中有错误,但在您在t上调用get之前,您不会在主进程中看到异常。 -
@Blckknght 你能给我举个例子吗?我是多处理库的新手 ,,,
-
@AlexHall 地图的阻塞部分是否意味着我要等到所有 1000 多个进程都完成?即使我知道它们都是令人尴尬的平行?
-
试试
t.get()。它已记录在案(与您已经调用的wait方法一起)right here。
标签: python python-3.x python-multiprocessing