РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1054 of 1245 menu

Класс Sender

Класс Sender представляет отправляющую половину канала, созданного функциями channel или sync_channel. Он используется для передачи значений принимающей стороне - Receiver. Метод send принимает значение, которое нужно отправить в канал. Класс Sender можно клонировать для создания нескольких отправителей, работающих с одним и тем же каналом. Когда все экземпляры Sender уничтожены, канал закрывается.

Синтаксис

use std::sync::mpsc::channel; let (tx, rx) = channel(); tx.send(value)

Пример

Давайте создадим канал и отправим в него строку "abcde", а затем примем её:

use std::sync::mpsc::channel; fn main() { let (tx, rx) = channel(); tx.send("abcde").unwrap(); let res = rx.recv().unwrap(); println!("{}", res); }

Результат выполнения кода:

"abcde"

Пример

Давайте отправим несколько чисел через один канал:

use std::sync::mpsc::channel; fn main() { let (tx, rx) = channel(); tx.send(1).unwrap(); tx.send(2).unwrap(); tx.send(3).unwrap(); let res: Vec<i32> = rx.iter().collect(); println!("{:?}", res); }

Результат выполнения кода:

[1, 2, 3]

Пример

Давайте клонируем Sender и отправим данные из двух разных отправителей:

use std::sync::mpsc::channel; fn main() { let (tx, rx) = channel(); let tx2 = tx.clone(); tx.send("12345").unwrap(); tx2.send("abcde").unwrap(); let res1: String = rx.recv().unwrap(); let res2: String = rx.recv().unwrap(); println!("{} {}", res1, res2); }

Результат выполнения кода:

"12345 abcde"

Смотрите также

  • метод send,
    который отправляет значение в канал
  • метод clone,
    который создаёт нового отправителя для того же канала
  • класс Receiver,
    который принимает значения из канала
  • функция channel,
    которая создаёт асинхронный канал
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить