#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
void runningSin();
void running();
int main()
{
cout<<"----------------------------CPU Per------------------------"<<endl;
SetThreadAffinityMask(GetCurrentThread(), 0);
//running();
runningSin();
getchar();
}
void running(){
int totalCPU=30;
int busy=15;
int idel=totalCPU-busy;
int startTime=0;
while(true){
startTime=GetTickCount();
while(GetTickCount()-startTime<busy);
Sleep(idel);}
}
void runningSin(){
const int SAMPLE_COUNT=300;
int totalCPU=30;
double PI=3.1416;
double sinSamp[SAMPLE_COUNT];
double pice=2.0/SAMPLE_COUNT;
for (int i=0;i<SAMPLE_COUNT;i++){
sinSamp[i]=(totalCPU/2)+(sin(PI*i*pice)*(totalCPU/2));
cout<<sinSamp[i]<<endl;
}
for(int i=0;;i=(i+1)%SAMPLE_COUNT){
int startTime=GetTickCount();
while(GetTickCount()-startTime<sinSamp[i]);
Sleep(totalCPU-sinSamp[i]);
}
}
CPU使用率像正弦函数一样。