Function std::thread::yield_now 1.0.0[−][src]
pub fn yield_now()
Expand description
合作地将一个时间片交给操作系统调度程序。
这会调用底层操作系统调度程序的 yield 原语,表明调用线程愿意放弃其剩余的时间片,以便操作系统可以在 CPU 上调度其他线程。
在循环中让步的一个缺点是,如果操作系统没有任何其他就绪线程在当前 CPU 上运行,该线程将有效地进行忙等待,这会浪费 CPU 时间和精力。
因此,在等待感兴趣的事件时,程序员的首选应该是使用同步设备,例如 channel
、Condvar
、Mutex
或 join
,因为这些原语是以阻塞方式实现,放弃 CPU 直到感兴趣的事件发生,避免重复让步。
yield_now
因此应该很少使用,主要是在需要重复轮询的情况下,因为没有其他合适的方法来了解何时发生了感兴趣的事件。
Examples
use std::thread; thread::yield_now();Run