📜  Java中的线程 isAlive() 方法及示例

📅  最后修改于: 2022-05-13 01:54:52.778000             🧑  作者: Mango

Java中的线程 isAlive() 方法及示例

Java中的 Thread 类提供了许多方法,这些方法对于理解线程的工作非常重要,因为线程阶段是由它们触发的。 Java多线程在isAlive() 和 join() 方法的帮助下提供了两种查找方法。

一个线程知道另一个线程何时结束。让我们通过下图描述线程生命周期的各个阶段,这有助于我们连接点以了解这些方法的工作原理。

现在让我们更深入地讨论 Thread 类的 isAlive() 方法。基本上,此方法在内部与线程的生命周期阶段非常并行地工作。它测试这个线程是否还活着。如果线程已启动且尚未死亡,则该线程处于活动状态。从线程运行到线程不运行有一个过渡期。

run() 方法返回后,在线程停止之前还有一小段时间。如果我们想知道线程类的start方法是否被调用或者线程是否被终止,我们必须使用isAlive()方法。此方法用于确定线程是否已实际启动且尚未终止。

句法:

final boolean isAlive()

返回值:布尔值返回

例子

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 occured
        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 whethr 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