我目前有这段代码(也可以随意评论:))
def threaded_convert_to_png(self):
paths = self.get_pages()
pool = Pool()
result = pool.map(convert_to_png, paths)
self.image_path = result
在Intel i7上,它在Linux上运行时会产生8个工作程序。但是,在运行Windows 8.1 Pro时,它仅产生一个工作程序。我cpu_count()
在Linux和Windows上都检查并返回8。
PS这在Python 2.7.6中
有一种简单的方法可以确定池中发生的事情-打开多处理调试。您可以这样做:
import logging
from multiprocessing import util
util.log_to_stderr(level=logging.DEBUG)
在脚本运行时,您将获得有关正在运行,产生和退出的进程的完整信息。
但是无论如何,进程池总是产生N个进程(N是“进程”参数值或cpu_count),但是进程之间的任务分配可能不均匀-它取决于任务运行时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句