Метод currentThread
Метод currentThread класса Thread возвращает ссылку на объект того потока, в котором в данный момент выполняется вызов этого метода. Метод является статическим, поэтому вызывается через имя класса: Thread.currentThread. Параметров метод не принимает. Возвращаемое значение имеет тип Thread - это объект текущего потока. С помощью этого объекта можно узнать имя потока, его идентификатор, приоритет, признак демона и другие характеристики, а также управлять его состоянием.
Синтаксис
Thread.currentThread()
Пример
Давайте получим объект текущего потока и выведем его имя:
public class Main
{
public static void main(String[] args)
{
Thread thread = Thread.currentThread();
System.out.println(thread.getName());
}
}
Результат выполнения кода:
"main"
Пример
Давайте выведем идентификатор текущего потока и проверим, является ли он демоном:
public class Main
{
public static void main(String[] args)
{
Thread thread = Thread.currentThread();
System.out.println(thread.getId());
System.out.println(thread.isDaemon());
}
}
Результат выполнения кода:
1
false
Пример
Давайте получим текущий поток внутри другого потока, созданного через Runnable, и выведем его имя:
public class Main
{
public static void main(String[] args)
{
Runnable task = () -> {
Thread thread = Thread.currentThread();
System.out.println(thread.getName());
};
Thread worker = new Thread(task);
worker.setName("worker");
worker.start();
}
}
Результат выполнения кода:
"worker"
Пример
Давайте используем текущий поток для его временной остановки через sleep:
public class Main
{
public static void main(String[] args)
{
try
{
Thread.currentThread().sleep(100);
System.out.println("done");
}
catch (InterruptedException e)
{
System.out.println("interrupted");
}
}
}
Результат выполнения кода:
"done"