typestar

Canales en Rust

mpsc mueve valores entre hilos: muchos emisores, un receptor.

use std::sync::mpsc;
use std::thread;

fn main() {
    let (tx, rx) = mpsc::channel();

    for id in 0..3 {
        let tx = tx.clone();
        thread::spawn(move || {
            tx.send(format!("worker {id} finished")).unwrap();
        });
    }
    drop(tx);

    for message in rx {
        println!("{message}");
    }
}

Cómo funciona

  1. Cada hilo recibe su propio clone del emisor.
  2. El receptor itera hasta que todos los emisores se sueltan.
  3. Los valores se mueven, así que no hay nada que trabar.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
260
Tokens
93
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 53 segundos.

Escribe este fragmento

Paso 1 de 2 en Canales; paso 7 de 15 en Concurrencia y async.

← Anterior Siguiente →