gpt4 book ai didi

c++ - C++如何允许在不过度使用CPU的情况下等待

转载 作者:搜寻专家 更新时间:2023-10-31 02:02:49 29 4
gpt4 key购买 nike

比如我有代码

while (!something} {
//waiting
}

它确实在等待某事,但它使用了大量的 CPU。 C++ 有诸如线程连接、条件变量等待、互斥锁之类的东西——它们允许等待,所以它确实会检查一些条件,但它的行为就像空闲进程——不消耗 CPU 时间。它是如何完成的,有没有办法让 while 循环(或任何其他代码)表现得像这样?

最佳答案

这些是操作系统必须支持的功能。

操作系统负责为您的进程和线程分配时间,您需要这些功能来控制(或者更确切地说,发出请求)该机制。

您的 C++ 标准库实现调用操作系统提供的特定于平台的函数。

如果不使用您已经列出的那种 C++ 类型/函数:互斥锁和计时器(或者不自己调用这些操作系统函数,就像我们过去所做的那样!),则无法自己复制它。您所能做的就是一个自旋锁,就像您已经演示过的那样。

关于c++ - C++如何允许在不过度使用CPU的情况下等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56612851/

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