gpt4 book ai didi

c++ - 放弃 CPU 时间

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:33 31 4
gpt4 key购买 nike

在 C/C++ 中是否有可能“放弃”线程的 CPU 时间?例如:

void wait(int s) //Low cpu usage
{
int tmp = time();
while(tmp + CLOCKS_PER_SEC * s > time())
__AbandonCPUTime();
//Tell cpu to do sth else.
}

我试过 Sleep(0),但它不起作用。

最佳答案

看看 C++11 的:

#include <thread>
std::this_thread::yield();

您的 CPU 可能支持 _mm_pause() 内部函数(__asm__("pause") 用于 gcc),这可能对您有帮助,也可能不会。

否则您将查看特定于操作系统的函数:sched_yield() 用于 Linux 上的 pthreads,或 SwitchToThread() 在 Windows 上

关于c++ - 放弃 CPU 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665137/

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