作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道在我的程序中是否只有 1 个线程,我可以编写它以便四核或 i7 实际上可以利用不同的内核吗?通常当我在四核计算机上编写程序时,CPU 使用率只会达到 25% 左右,而且工作似乎在 4 个核之间分配,如任务管理器所示。 (我写的程序通常是 Ruby、Python 或 PHP,所以它们可能没有那么优化)。
更新:如果我改用 C 或 C++ 编写它会怎样,并且
for (i = 0; i < 100000000; i++) {
a = i * 2;
b = i + 1;
if (a == ... || b == ...) { ... }
}
然后对编译器使用最高级别的优化。编译器能否使乘法发生在一个内核上,而加法发生在另一个内核上,从而使 2 个内核同时工作?使用 2 个核心不是一个相当容易的优化吗?
最佳答案
没有。您需要使用线程在多个 CPU(无论是真实的还是虚拟的)上同时执行多条路径...一个线程的执行本质上绑定(bind)到一个 CPU,因为这维护了语句之间的“先于发生”关系,这是如何实现的核心程序工作。
关于multithreading - 如果只使用一个线程,我可以轻松编写一个程序来利用英特尔的四核或 i7 芯片吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/876859/
我是一名优秀的程序员,十分优秀!