关于多处理与s核的关系

2024-09-19 23:37:06 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的代码,假设我有一台32核的机器,python会决定为我创建多少进程吗

from multiprocessing import Process
for i in range(100):
    p = Process(target=run, args=(fileToAnalyse,))
    p.start()

Tags: run代码infromimport机器targetfor
1条回答
网友
1楼 · 发布于 2024-09-19 23:37:06

不,这不适合你

要限制子进程的数量,需要使用a pool of workers

文档中的示例:

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    pool = Pool(processes=4)              # start 4 worker processes
    result = pool.apply_async(f, [10])    # evaluate "f(10)" asynchronously
    print result.get(timeout=1)           # prints "100" unless your computer is *very* slow
    print pool.map(f, range(10))          # prints "[0, 1, 4,..., 81]"

如果省略,processes=4,它将使用返回cpu数量的multiprocessing.cpu_count

相关问题 更多 >