Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 那么Sleep()和这个是一样的吗?_Windows_Performance_Winapi_Delay_Clock - Fatal编程技术网

Windows 那么Sleep()和这个是一样的吗?

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; }

那么,这两个是相同的吗? 在任务管理器中使用延迟CPU使用是疯狂的。。这与系统空闲进程的情况相同吗

#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%,可能会使其他进程陷入饥饿状态。非常感谢,我不知道这叫什么:)