gpt4 book ai didi

c++ - 如何循环程序以使其继续执行

转载 作者:行者123 更新时间:2023-11-30 00:40:32 25 4
gpt4 key购买 nike

我目前有这段代码

#include <iostream>
#include <curl.h>
#include <windows.h>
#include "boost\timer.hpp"


int main(void)
{
CURL *curl;
CURLcode res;
boost::timer t;

int number = 1;

while (number == 1)
{
if(t.elapsed() > 10)
{
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
res = curl_easy_perform(curl);

/* always cleanup */
curl_easy_cleanup(curl);
}
t.restart();
}
}
}

我想要它做的是继续执行这个程序,直到有人关闭窗 Eloquent 结束。我尝试了上述代码,但我的四核 CPU 上的 CPU 使用率飙升至 25%。

那么我如何继续执行程序并在 while 内循环代码而不使用那么多 CPU?

附言四核上的 25% 意味着单核 CPU 上的 CPU 使用率为 100%。

最佳答案

您可以使用Sleep(10000) 暂停程序执行大约。 10 秒。您可以放弃 boost::timer - 在每个循环迭代中只休眠 10 秒(休眠不那么准确,但 10 秒的不准确性应该可以忽略不计)。

您的代码是所谓的“繁忙循环”——对于 CPU 而言,无论您是在一个紧凑的循环中闲逛而不做太多工作还是进行繁重的计算,都没有区别。两者都将使用 100% 的 CPU 核心,因为有源源不断的指令流进来。要减少使用,您需要放弃执行一段时间,让操作系统执行其他进程。

关于c++ - 如何循环程序以使其继续执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com