首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python多处理是共享核心。

Python多处理是共享核心。
EN

Stack Overflow用户
提问于 2013-06-28 23:03:14
回答 1查看 265关注 0票数 0

我正在使用毫秒处理来读取大量的大文件块,然后处理它,但是我正在释放一些东西,因为有时当我启动某个进程时,它们中的一些共享一个核心。例句:系统有12个核,我运行10个进程,其中6个是en 6核(每个核一个),另外4个是en 2核(每个核中有2个)。但其他时候,用10个核来处理10个过程很好.

代码:

代码语言:javascript
复制
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个并行线程。
  • 有时有两个以上的共享核心。
  • 瓶颈不是这个程序的IO,而是处理文件的每一行。
EN

回答 1

Stack Overflow用户

发布于 2013-06-28 23:29:12

我当然不是这个问题的专家,但看起来大多数现代处理器实际上都是由物理核和虚拟核构成的。例如,我有一个Intel I7,这意味着我有4个物理核,但每个内核实际上包含2个虚拟核,这意味着我的处理器可以并行运行8个不同的进程。

您有时提到,每个核心有两个进程,所以这是由于核心虚拟化造成的。

顺便说一句,如果您的目标是以较小的块处理大量的数据,那么python中就有一个专门用于这些任务的特定模块:池子,它使用

代码语言:javascript
复制
from multiprocessing import Pool

希望这对你有用,干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17374902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档