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

Функция spawn

Функция spawn создает новый поток операционной системы и выполняет в нем переданное замыкание. Параметром функция принимает замыкание, которое будет выполнено в новом потоке. Возвращает функция значение типа JoinHandle, которое можно использовать для ожидания завершения потока и получения его результата.

Синтаксис

std::thread::spawn(f)

Пример

Давайте создадим новый поток, который выведет строку "Hello from thread":

use std::thread; fn main() { let handle = thread::spawn(|| { println!("Hello from thread"); }); handle.join().unwrap(); }

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

"Hello from thread"

Пример

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

use std::thread; fn main() { let handle = thread::spawn(|| { let res = 2 + 3; res }); let res = handle.join().unwrap(); println!("{}", res); }

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

5

Пример

Давайте создадим несколько потоков и дождемся их завершения:

use std::thread; fn main() { let mut handles = vec![]; for i in 1..=3 { let handle = thread::spawn(move || { println!("Thread {}", i); }); handles.push(handle); } for handle in handles { handle.join().unwrap(); } }

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

"Thread 1" "Thread 2" "Thread 3"

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

  • структура JoinHandle,
    которая представляет дескриптор потока
  • метод join,
    который ожидает завершения потока
  • функция sleep,
    которая приостанавливает выполнение текущего потока
  • структура Builder,
    которая позволяет настроить параметры нового потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить