本文簡要介紹rust語言中 Function std::sync::mpsc::channel
的用法。
用法
pub fn channel<T>() -> (Sender<T>, Receiver<T>)
創建一個新的異步通道,返回一半的發送者/接收者。在 Sender
上發送的所有數據都將在 Receiver
上以與發送時相同的順序可用,並且沒有 send
會阻塞調用線程(此通道具有 “infinite buffer”,與 sync_channel
不同,後者達到緩衝區限製後將阻塞)。 recv
將阻塞,直到消息可用,同時至少有一個 Sender
活著(包括克隆)。
Sender
可以多次克隆到同一頻道的 send
,但隻支持一個 Receiver
。
如果在嘗試使用 Sender
連接 send
時 Receiver
斷開連接,則 send
方法將返回 SendError
。同樣,如果在嘗試 recv
時 Sender
斷開連接,則 recv
方法將返回 RecvError
。
例子
use std::sync::mpsc::channel;
use std::thread;
let (sender, receiver) = channel();
// Spawn off an expensive computation
thread::spawn(move|| {
sender.send(expensive_computation()).unwrap();
});
// Do some useful work for awhile
// Let's see what that answer was
println!("{:?}", receiver.recv().unwrap());
相關用法
- Rust char.is_control用法及代碼示例
- Rust char.is_alphanumeric用法及代碼示例
- Rust char.len_utf16用法及代碼示例
- Rust char.is_digit用法及代碼示例
- Rust char.is_ascii_graphic用法及代碼示例
- Rust char.decode_utf16用法及代碼示例
- Rust char.is_uppercase用法及代碼示例
- Rust char.to_ascii_lowercase用法及代碼示例
- Rust char.is_ascii_uppercase用法及代碼示例
- Rust char.escape_unicode用法及代碼示例
- Rust char.is_alphabetic用法及代碼示例
- Rust char.is_ascii_control用法及代碼示例
- Rust char.from_u32_unchecked用法及代碼示例
- Rust char.is_ascii_alphabetic用法及代碼示例
- Rust char.eq_ignore_ascii_case用法及代碼示例
- Rust char.is_ascii用法及代碼示例
- Rust char.make_ascii_lowercase用法及代碼示例
- Rust char.is_whitespace用法及代碼示例
- Rust char.to_lowercase用法及代碼示例
- Rust char.is_ascii_punctuation用法及代碼示例
- Rust char.to_digit用法及代碼示例
- Rust char.from_digit用法及代碼示例
- Rust char.is_lowercase用法及代碼示例
- Rust char.encode_utf16用法及代碼示例
- Rust char.len_utf8用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::sync::mpsc::channel。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。