我正在使用 miltiprocessing 读取大量文件的大量块然后对其进行处理,但我失去了一些东西,因为有时当我启动某些进程时,其中一些共享一个核心。示例:具有 12 个内核的系统,我运行 10 个进程,其中 6 个是 en 6 个内核(每个内核一个),其他 4 个是 en 2 个内核(每个内核 2 个)......但其他时候,使用 10 个内核运行 10 个内核可以正常工作过程...
代码:
from multiprocessing import Process
[...]
process1=Process(target=run_thread, args=("./splited/"+file,result,))
process2=Process(target=run_thread, args=("./splited/"+file,result,))
process3=Process(target=run_thread, args=("./splited/"+file,result,))
process1.start()
process2.start()
process3.start()
[...]
process1.join()
process2.join()
process3.join()
这是我的代码示例,当我看到这个问题时,我正在尝试使用 10。
谢谢。
编辑:
- 这台机器没有多线程工作,所以它有12个核心,最多12个并行线程。
- 有时有超过 2 个共享一个核心。
- 瓶颈不是这个程序上的 IO,它处理文件的每一行。