我正在使用毫秒处理来读取大量的大文件块,然后处理它,但是我正在释放一些东西,因为有时当我启动某个进程时,它们中的一些共享一个核心。例句:系统有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。
谢谢。
编辑:
发布于 2013-06-28 23:29:12
我当然不是这个问题的专家,但看起来大多数现代处理器实际上都是由物理核和虚拟核构成的。例如,我有一个Intel I7,这意味着我有4个物理核,但每个内核实际上包含2个虚拟核,这意味着我的处理器可以并行运行8个不同的进程。
您有时提到,每个核心有两个进程,所以这是由于核心虚拟化造成的。
顺便说一句,如果您的目标是以较小的块处理大量的数据,那么python中就有一个专门用于这些任务的特定模块:池子,它使用
from multiprocessing import Pool希望这对你有用,干杯
https://stackoverflow.com/questions/17374902
复制相似问题