为什么两个相同的进程不承担双​​CPU负载

时间:2017-11-18 15:37:22

标签: process

我正在使用Raspberry Pi 3并基本上跨过了一条小绊网。

我有一个非常庞大而复杂的程序,占用大量内存并且CPU负载很大。我认为如果我在第一个进程仍在运行时启动相同的进程是正常的,那将需要相同的内存量并且特别是是CPU负载的两倍。我发现它不会占用更多内存,也不会影响CPU负载。

为了确定这个行为是否来自我的程序,我编写了一个具有极高内存使用量的小型c ++程序,这里是:

#include <iostream>

using namespace std;

int main()
{
    for(int i = 0; i<100; i++) {

        float a[100][100][100];
        for (int i2 = 0; i2 < 99; ++i2) {
            for (int i3 = 0; i3 < 99; ++i3){
                for (int i4 = 0; i4 < 99; ++i4){
                    a[i2][i3][i4] = i2*i3*i4;
                    cout << a[i2][i3][i4] << endl;
                }
            }
        }
    }
    return 0;
}

CPU负载大约是最高级别的30%,我在一个终端启动了代码。奇怪的是,当我同时在另一个终端启动它时,它并没有影响CPU负载。我的结论是,这种行为不能来自我的计划。

现在我想知道:

  • 是否有&#34;锁定&#34;确保某种类型的流程不会烧烤核心?

  • 为什么两个相同的进程不会加倍CPU负载?

0 个答案:

没有答案