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

Класс Thread

Класс Thread представляет собой дескриптор потока выполнения. Экземпляр этого класса возвращается функциями spawn и Builder::spawn. С его помощью можно получить идентификатор потока, узнать его имя, а также управлять его пробуждением с помощью метода unpark. Параметров класс не принимает, так как это тип-дескриптор.

Синтаксис

std::thread::Thread

Пример

Давайте создадим поток и получим его дескриптор с помощью метода thread:

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

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

Hello from thread Thread id: ThreadId(1)

Пример

Давайте получим имя текущего потока с помощью функции current и метода name:

use std::thread; fn main() { let current = thread::current(); match current.name() { Some(name) => println!("Thread name: {}", name), None => println!("Thread has no name"), } }

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

Thread name: main

Пример

Давайте создадим поток, приостановим его с помощью функции park и затем пробудим с помощью метода unpark:

use std::thread; use std::time::Duration; fn main() { let handle = thread::spawn(|| { println!("Thread is going to park"); thread::park(); println!("Thread is unparked"); }); let thread_ref = handle.thread().clone(); thread::sleep(Duration::from_millis(100)); println!("Main thread unparking worker"); thread_ref.unpark(); handle.join().unwrap(); }

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

Thread is going to park Main thread unparking worker Thread is unparked

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

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