Rust · Essencial · Inglês · Técnico
channel
Canal de comunicação entre threads, criado com mpsc::channel, que devolve um emissor (Sender) e um receptor (Receiver). Passar mensagens evita compartilhar estado.
Onde usar
Aparece como alternativa ao Mutex: uma thread produz, outra consome. Quando todos os emissores caem, o recv devolve erro, o que encerra o laço do consumidor.
Em código
use std::sync::mpsc;
let (tx, rx) = mpsc::channel();
std::thread::spawn(move || {
tx.send("oi").unwrap();
});
println!("{}", rx.recv().unwrap());Exemplos
Send the result back through a channel.
Envie o resultado de volta por um channel.
The receiver loops until the channel closes.
O receptor faz laço até o channel fechar.
Cuidado
mpsc significa vários produtores e um único consumidor; o Receiver da biblioteca padrão não pode ser clonado.
Sinônimos
canal