Метод 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