《編程之美》是基於windows系統的,而我使用的是ubuntu,所以在完成這道題的時候使用的是linux系統
1. top–>查詢當前cpu運行狀態
2. cat /proc/cpuinfo –>主機的cpu信息
/*
* 編程改變cpu佔用率
* StoryMonster 2016/7/15
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(int argc,char** argv)
{
//argv保存希望維持的cpu佔用率
//cpu佔用率 = 程序在一個cpu刷新週期內busy時間/cpu刷新週期
//通過對本機的研究發現:本機每次cpu刷新時間爲3秒
//但是爲了近可能地適用於更多主機,所以本例使用1秒爲週期
int busy = atoi(argv[1]);
busy = busy*1000/100;
int relax = 1000-busy;
while(true)
{
usleep(relax*1000); //usleep使進程掛起relax*1000 微妙
double tim1 = clock(); //通過此例驗證:clock返回時間單位爲納秒
double tim2 = clock();
while(tim2 - tim1 < busy*1000) tim2 = clock();
}
return 0;
}