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

Запуск фоновой линии в Rust

Запуск создает новую линию выполнения и передает ей замыкание. В ответ программа получает ручку ожидания: по ней позже узнают, что фоновая работа закончилась.

Подключим модуль потока и выведем слово из фоновой линии, а ручку сохраним в переменную:

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

На экране сначала worker, затем ready. Ручка живет в основной линии и не исчезает, пока к ней не обратятся для ожидания.

Замыкание может вернуть число; ручка типизирована под этот результат, хотя разбор значения мы отложим до отдельного шага:

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

Дано число:

let num = 11;

Запустите фоновую линию с замыканием, которое возвращает этот литерал. Сохраните ручку, дождитесь конца через разбор результата и выведите число.

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

Дано число:

let num = 3;

Выведите start в основной линии, запустите фоновую работу, которая печатает этот литерал, и после ожидания выведите end.

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