Метод Thread isAlive() в Java с примерами

Опубликовано: 15 Сентября, 2022

Класс Thread в Java предоставляет множество методов, которые очень важны для понимания работы потоков, поскольку они запускают этапы потока. Многопоточность Java предоставляет два способа поиска с помощью методов isAlive() и join().
Один поток узнает, когда закончился другой поток. Давайте изобразим этапы жизненного цикла потока с помощью изображения ниже, которое поможет нам соединить точки, чтобы понять работу этих методов.

Теперь давайте более подробно обсудим метод isAlive() класса Thread. По сути, этот метод работает внутри очень близко параллельно этапам жизненного цикла потока. Он проверяет, жив ли этот поток. Поток жив, если он был запущен и еще не умер. Существует переходный период между выполнением потока и моментом, когда поток не выполняется.
После возврата из метода run() проходит небольшой промежуток времени, прежде чем поток остановится. Если мы хотим знать, был ли вызван метод запуска класса потока или поток был завершен, мы должны использовать метод isAlive(). Этот метод используется, чтобы узнать, действительно ли поток был запущен и еще не завершился.

Синтаксис:

final boolean isAlive()

Возвращаемое значение: возвращается логическое значение

Note: While returning this function returns true if the thread upon which it is called is still running. It returns false otherwise.

Пример

Java




// Java program to Illustrate isAlive() Method
// of Thread class
 
// Main class extending Thread class
public class oneThread extends Thread {
 
    // Method 1
    // run() method for thread
    public void run()
    {
 
        // Print statement
        System.out.println("geeks ");
 
        // Try block to check for exceptions
        try {
           
            // making thread to sleep for 300 nano-seconds
           // using sleep() method
            Thread.sleep(300);
        }
 
        // Catch block to handle InterruptedException
        catch (InterruptedException ie) {
        }
 
        // Display message when exception occurred
        System.out.println("forgeeks ");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Creating threads using above class as
        // it is extending Thread class
        oneThread c1 = new oneThread();
        oneThread c2 = new oneThread();
 
        // Starting threads
        c1.start();
        c2.start();
 
        // Checking whether thread is alive or not
        // Returning boolean true if alive else false
        System.out.println(c1.isAlive());
        System.out.println(c2.isAlive());
    }
}

Выход:

geeks 
true
true
geeks 
forgeeks 
forgeeks

Эта статья предоставлена Шивани Гугтиал . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.