我目前正在使用C++在Windows上编写应用程序,并希望模拟CPU负载。
以下是我的代码:
void task1(void *param) {
unsigned elapsed =0;
unsigned t0;
while(1){
if ((t0=clock())>=50+elapsed){//if time elapsed is 50ms
elapsed=t0;
Sleep(50);
}
}
}
int main(){
int ThreadNr;
for(int i=0; i < 4;i++){//for each core (i.e. 4 cores)
_beginthread( task1, 0, &ThreadNr );//create a new thread and run the "task1" function
}
while(1){}
}
我使用与此线程中给出的答案相同的方法编写了这段代码:模拟稳定的CPU负载和峰值。
我的问题是:
- 我是否已正确将其他帖子中的C#代码转换为C++?
- 这段代码是否会在四核处理器上生成50%的平均CPU负载?
- 如何以合理的准确度找到CPU的负载百分比?(任务管理器是唯一的选择吗?)