Метод getId
Метод getId класса Thread возвращает
уникальный идентификатор потока в виде числа типа
long. Идентификатор присваивается потоку
при его создании и остаётся неизменным на протяжении
всего жизненного цикла потока. Метод не принимает
параметров. Значение идентификатора уникально для
каждого потока в пределах одного запуска JVM.
Идентификаторы могут переиспользоваться после завершения потока, поэтому не стоит полагаться на них как на глобально уникальные во времени.
Синтаксис
thread.getId()
Пример
Давайте получим идентификатор главного потока программы:
public class Main
{
public static void main(String[] args)
{
Thread thread = Thread.currentThread();
System.out.println(thread.getId());
}
}
Результат выполнения кода:
1
Пример
Давайте создадим новый поток и выведем его идентификатор вместе с идентификатором главного потока:
public class Main
{
public static void main(String[] args)
{
Thread mainThread = Thread.currentThread();
Thread newThread = new Thread(() -> {
System.out.println("New thread id: " + Thread.currentThread().getId());
});
newThread.start();
System.out.println("Main thread id: " + mainThread.getId());
}
}
Результат выполнения кода:
Main thread id: 1
New thread id: 21
Пример
Давайте сравним идентификаторы двух разных потоков, чтобы убедиться, что они различаются:
public class Main
{
public static void main(String[] args)
{
Thread first = new Thread(() -> {});
Thread second = new Thread(() -> {});
long firstId = first.getId();
long secondId = second.getId();
System.out.println("First id: " + firstId);
System.out.println("Second id: " + secondId);
System.out.println("Ids are equal: " + (firstId == secondId));
}
}
Результат выполнения кода:
First id: 21
Second id: 22
Ids are equal: false
Смотрите также
-
метод
getName,
который возвращает имя потока -
метод
currentThread,
который возвращает текущий поток -
метод
isAlive,
который проверяет, жив ли поток -
класс
Thread,
который представляет поток выполнения