Windows 那么Sleep()和这个是一样的吗?
那么,这两个是相同的吗? 在任务管理器中使用延迟CPU使用是疯狂的。。这与系统空闲进程的情况相同吗Windows 那么Sleep()和这个是一样的吗?,windows,performance,winapi,delay,clock,Windows,Performance,Winapi,Delay,Clock,那么,这两个是相同的吗? 在任务管理器中使用延迟CPU使用是疯狂的。。这与系统空闲进程的情况相同吗 #include <iostream> #include <time.h> //#include <windows.h> int delay(long int time) { clock_t beginning = clock(); while(clock() - beginning < time) {} return 0; }
#include <iostream>
#include <time.h>
//#include <windows.h>
int delay(long int time)
{
clock_t beginning = clock();
while(clock() - beginning < time) {}
return 0;
}
int main()
{
clock_t beginning = clock();
begin:
std::cout << "delay this by 1000ms\n";
//Sleep(1000);
delay(1000);
goto begin; //i know, i know
return 0;
}
#包括
#包括
//#包括
整数延迟(长整数时间)
{
时钟开始=时钟();
while(clock()-开始<时间){}
返回0;
}
int main()
{
时钟开始=时钟();
开始:
std::cout这被称为“忙等待”,与调用Sleep()
完全不同。睡眠将重新安排进程,以便其他进程有机会运行;忙等待只会让CPU忙着不做任何有用的事情,从而降低整个系统的速度
“系统空闲进程”也在做同样的事情,但它只在没有其他进程需要做的时候被安排。它可能比你写的循环更节能。维基百科有关于如何和为什么的说明。为什么要使用标签:…goto标签;
而不是而(1){…}
?反正我也不打算过度使用goto。。是的,这就是为什么我建议用一个代替另一个。但是,goto
版本是模糊和不明显的,完全没有理由。你甚至可以保存自己的//我知道,我知道
评论。我不是在鼓吹goto
节欲(C),我对迂回的处理方式感到震惊。繁忙的等待将导致您的cpu达到100%,可能会使其他进程陷入饥饿状态。非常感谢,我不知道这叫什么:)