1.0 KiB
1.0 KiB
Thread::Yield
static void Yield();
静态方法,向调度器提示当前线程愿意让出 CPU 时间片,让其他线程有机会执行。此方法适用于需要 busy-wait 或自旋等待的场景。
实现基于 std::this_thread::yield()。调度器行为取决于操作系统。
警告: 过度使用 Yield() 可能导致性能问题。在多数情况下,使用 Sleep() 是更好的选择。
参数: 无
返回: 无
线程安全: ✅
示例:
#include "XCEngine/Threading/Thread.h"
#include <atomic>
#include <iostream>
using namespace XCEngine::Threading;
int main() {
std::atomic<bool> ready{false};
Thread t;
t.Start([&ready]() {
while (!ready.load()) {
Thread::Yield();
}
std::cout << "Worker: ready flag is set!" << std::endl;
}, "YieldWorker");
Thread::Sleep(100);
ready.store(true);
t.Join();
return 0;
}