ExpertiDict

Rust · Essencial · Inglês · Técnico

channel

/ˈtʃænəl/substantivo

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

Veja também

Todos os termos de Rust