功能
std::this_thread::yield()
: 当前线程放弃执行,操作系统调度另一线程继续执行。。
现象
记录遇见的一种情况,当使用while 循环时,`std::this_thread::yield()`无法降低cpu利用。
分析
由于while循环,cpu不断循环调用`std::this_thread::yield()`,消耗大量资源,导致目标效果无法达成。
方案
通过`std::this_thread::sleep_for(std::chrono::milliseconds(1))`替代`std::this_thread::yield()`,sleep时间根据逻辑而定。
ps
只针对当前遇见的情况而记录,可能存在其他解决方案。