Windows上的multiprocessing.Pool.apply_async

我正在尝试使用一个来并行处理一些subprocess调用。 一切工作正常,如果我构build池的整个迭代,并使用imapmapimap_unordered等,但我不能得到apply_async工作。

例如,这可以正常工作:

 from subprocess import check_call from multiprocessing import Pool def dispatch_call(file_name): return check_call(...) if __name__ == '__main__': files = (constructed file list) pool = Pool() pool.imap(dispatch_call, files) pool.close() pool.join() 

但是,这并不是:

 from subprocess import check_call from multiprocessing import Pool def dispatch_call(file_name): return check_call(...) if __name__ == '__main__': files = (constructed file list) pool = Pool() for f in files: pool.apply_async(dispatch_call, f) pool.close() pool.join() 

我检查了multiprocessing的文档,并没有任何Windows具体问题似乎在这里相关。 我只是运气不好,试图让这个工作在Windows上?

Solutions Collecting From Web of "Windows上的multiprocessing.Pool.apply_async"