當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust yield_now用法及代碼示例


本文簡要介紹rust語言中 Function std::thread::yield_now 的用法。

用法

pub fn yield_now()

合作放棄時間片給 OS 調度程序。

這會調用底層操作係統調度程序的 yield 原語,表示調用線程願意放棄其剩餘的時間片,以便操作係統可以在 CPU 上調度其他線程。

在循環中讓步的一個缺點是,如果操作係統沒有任何其他準備好的線程可以在當前 CPU 上運行,則該線程將有效地 busy-wait,這會浪費 CPU 時間和精力。

因此,在等待感興趣的事件時,程序員的首選應該是使用同步設備,例如 channel s、 Condvar s、 Mutex es 或 join ,因為這些原語是以阻塞方式實現的,給出啟動 CPU,直到發生感興趣的事件,以避免重複讓步。

因此,yield_now 應該很少使用,主要是在需要重複輪詢的情況下,因為沒有其他合適的方法可以了解何時發生了感興趣的事件。

例子

use std::thread;

thread::yield_now();

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::thread::yield_now。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。