我正在尝试使用一个池来并行处理一些subprocess调用。 一切工作正常,如果我构build池的整个迭代,并使用imap , map , imap_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上?
Python线程与Linux中的多处理
“pcntl_fork():Error 12”是什么意思?
双向消息在OS内的两个进程之间传递
Bash:在多个核心上运行相同的程序
为什么孩子没有死?
等待程序的最后一个实例
在Linux下使用Atlas在numpy中的线程错误
自定义对象是由Python的多处理进程共享的吗?
运行多个python程序时的高内核cpu
在C中同步进程和信号量和信号
str对象也是一个序列,但传递一个字符串会导致将多个参数传递给回调(字符串的每个字符都被视为参数):
pool.apply_async(dispatch_call,[f])
要么
pool.apply_async(dispatch_call,(f,))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。