Online Rust Playground
//Multithread
use std::thread;
use std::sync::mpsc;
fn main() {
//Создаем канал связи между параллельными потоками
let (p_tx, p_rx) = mpsc::channel();
//Создаем параллельный поток и биндим к ручке
let handle = thread::spawn(move || {
//Получаем данные из основного потока
let d = p_rx.recv().unwrap();
//Обрабатываем данные в параллельном потоке
calc(d);
});
//Основной поток:
//Создаем данные для обработки
let data = Data { str: "parallel!".to_string() };
//Передаем данные в параллельный поток
p_tx.send(data).unwrap();
//Сводим потоки через ручку
handle.join().unwrap();
}
//Функция для обработки данных в параллельном потоке
fn calc(data: Data) {
println!("Hello {}", data.str);
}
//Данные для передачи между потоками
struct Data {
str: String,
}
Комментариев нет:
Отправить комментарий