re: 编程之美:让CPU占用率曲线听你指挥 lateCpp 2010-12-26 16:55
28 while ((GetTickCount() - startTime) <= busySpan[j]) ;
29 Sleep(idleSpan[j]);
========================
这个可以控制到sleep是正弦曲线吗?
我对WINDOWS API不太熟,大致理解是这样:
如果j=0时,busySpan[0]=150,相应的,IdleSpan[0]=150;
如果j等某值时,busySpan[j]=180,相应的,IdleSpan[j]=120。(由计算公式,busySpan=150*(1+sin(j*pi)),可知,可以取到这个值,起码近似。)
这时候来看while循环(上面所引的行28):
第一次循环:满足<=180条件,执行一次Sleep(120);
第二次循环:依然满足<=180的条件 ,再执行一次Sleep(120);
第三次循环:不满足,跳出;
这样一共Sleep了240秒,显然,这跟原来Sleep(IdleSpan[j])的初衷是不一致的。这个对产生的曲线应该也有影响吧?
不知道理解的对不。希望交流讨论。xueyayang AT gmail DOT com