我尝试在Windows 10,python2.7和jupyter notebook中使用多处理来编写简单的代码。当我运行代码时,内核得到了堆栈,没有任何错误。我检查了任务管理器的性能,看到 8 个(我的 CPU 中的内核数(进程正在运行,每个进程的 CPU 使用率为 0%。 我几乎到处找,但什么也没找到。我也在蟒蛇提示符中尝试过,但出现了无休止的错误循环。
这是我的代码:
import multiprocessing
n_cpu = multiprocessing.cpu_count()
def foo(x):
return x**2
if __name__ == '__main__':
pool = multiprocessing.Pool(processes = n_cpu)
res = pool.map(foo, [1,2,3])
pool.close()
这是你的实际代码吗?由于foo
如此简单,此代码将运行得如此之快,以至于它可能看起来像 0% 的 CPU 使用率。
如果您看到生成了子流程,则pool.map
正在执行其工作。如果你想看到他们实际上都使用完整的CPU,给他们一些真正的肉来咀嚼(也许是像sum([sum(range(x)) for x in range(1000)])
这样的东西。