Files
XCEngine/docs/api/threading/thread/yield.md

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;
}

相关文档