尝试了书中的几种方式,发现都不明显,只有下面这种方法,而且要把时间片调到7ms的时候,才大致是在百分之50:
/*
* 让cpu占用率曲线听你指挥
*
* 写一个程序,让用户来决定windows任务管理器的cpu占用率,程序越精简越好,计算机语言不限。实现下面三种情况
*
* 1、cpu的占用率固定在50%,为一条直线
* 2、cpu的占用率为一条直线,具体占用率由命令行参数决定(参数范围1~100)
* 3、cpu的占用率状态是一条正弦曲线
*/
#include <windows.h>
using namespace std;
int main() {
DWORD startTime = 0;
unsigned busyTime = 7;
unsigned idleTime = busyTime;
SetThreadAffinityMask(GetCurrentProcess(), 0x00000001);
while (true) {
startTime = GetTickCount();
while (GetTickCount() - startTime <= busyTime) {
;
}
Sleep(idleTime);
}
}