Метод Thread isAlive() в Java с примерами
Класс 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, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.