Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpThJn 128 of 288 menu
◀ ▶

Ожидание завершения потока в Rust

Ожидание по ручке блокирует основную линию, пока замыкание в фоне не завершится. Ответ приходит в виде результата: при успехе внутри лежит возвращенное значение.

Запустим линию с суммой и разберем ответ через сопоставление с образцом:

use std::thread; fn main() { let handle = thread::spawn(|| 2 + 3); match handle.join() { Ok(sum) => println!("{}", sum), Err(_) => println!("failed"), } }

На экране число 5. Ветка с ошибкой здесь не срабатывает, но ее оставляют, чтобы не терять полный тип ответа.

Тот же прием с текстом, который собирает замыкание внутри фоновой линии:

use std::thread; fn main() { let handle = thread::spawn(|| String::from("ok")); match handle.join() { Ok(line) => println!("{}", line), Err(_) => println!("failed"), } }

Дано число:

let num = 9;

Фоновая линия должна вернуть удвоенный литерал. Разберите ответ ручки и выведите результат.

Скажите, что получит программа в ветке Ok, если замыкание ничего не возвращает явно.

Дано число:

let num = 4;

Запустите две короткие линии: одна возвращает литерал, другая его увеличивает на единицу. Дождитесь каждую ручку по очереди и выведите оба числа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить