如果只使用1个线程,我可以轻松编写程序来使用英特尔的四核或i7芯片吗?

nop*_*ole 2 performance multithreading multicore

我想知道在我的程序中我是否只有1个线程,我可以编写它以便Quad core或i7可以实际使用不同的内核吗?通常,当我在四核计算机上编写程序时,CPU使用率将仅达到约25%,并且工作似乎在4个核心之间进行划分,如任务管理器所示.(我编写的程序通常是Ruby,Python或PHP,所以它们可能没有那么多优化).

更新:如果我用C或C++编写它,和

for (i = 0; i < 100000000; i++) {
  a = i * 2;
  b = i + 1;
  if (a == ...  || b == ...) { ... }
}
Run Code Online (Sandbox Code Playgroud)

然后使用编译器的最高级别的优化.编译器是否可以在一个内核上进行乘法,并且添加发生在不同的内核上,因此可以使两个内核同时工作?使用2个核心并不是一个相当容易的优化?

cor*_*ttk 7

不需要.您需要使用线程在多个CPU上同时执行多个路径(无论是真实的还是虚拟的)...一个线程的执行固有地绑定到一个CPU,因为这样可以保持语句之间的"发生之前"关系,这是中心程序如何工作.