《编程之美》是基于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;
}