Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1048 of 1246 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить