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

Метод id

Метод id возвращает уникальный идентификатор потока в виде значения типа ThreadId. Каждый поток в программе получает свой собственный идентификатор, который можно использовать для сравнения потоков между собой. Параметров метод не принимает.

Синтаксис

thread.id()

Пример

Давайте получим идентификатор главного потока и выведем его на экран:

use std::thread; fn main() { let current = thread::current(); let id = current.id(); println!("{:?}", id); }

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

ThreadId(1)

Пример

Давайте создадим новый поток и сравним его идентификатор с идентификатором главного потока:

use std::thread; fn main() { let main_id = thread::current().id(); let handle = thread::spawn(|| { let child_id = thread::current().id(); println!("{:?}", child_id); }); handle.join().unwrap(); println!("{:?}", main_id); }

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

ThreadId(2) ThreadId(1)

Пример

Давайте проверим, равны ли идентификаторы двух потоков:

use std::thread; fn main() { let handle = thread::spawn(|| { thread::current().id() }); let child_id = handle.join().unwrap(); let main_id = thread::current().id(); let res = child_id == main_id; println!("{}", res); }

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

false

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

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