我正在使用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负载?