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

51 lines
1.0 KiB
Markdown
Raw Normal View History

# Thread::Yield
```cpp
static void Yield();
```
静态方法,向调度器提示当前线程愿意让出 CPU 时间片,让其他线程有机会执行。此方法适用于需要 busy-wait 或自旋等待的场景。
实现基于 `std::this_thread::yield()`。调度器行为取决于操作系统。
**警告:** 过度使用 `Yield()` 可能导致性能问题。在多数情况下,使用 `Sleep()` 是更好的选择。
**参数:** 无
**返回:** 无
**线程安全:** ✅
**示例:**
```cpp
#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;
}
```
## 相关文档
- [Thread 总览](thread.md) - 返回类总览
- [Sleep](sleep.md) - 线程休眠