Java中的线程 isAlive() 方法及示例
Java中的 Thread 类提供了许多方法,这些方法对于理解线程的工作非常重要,因为线程阶段是由它们触发的。 Java多线程在isAlive() 和 join() 方法的帮助下提供了两种查找方法。
一个线程知道另一个线程何时结束。让我们通过下图描述线程生命周期的各个阶段,这有助于我们连接点以了解这些方法的工作原理。
现在让我们更深入地讨论 Thread 类的 isAlive() 方法。基本上,此方法在内部与线程的生命周期阶段非常并行地工作。它测试这个线程是否还活着。如果线程已启动且尚未死亡,则该线程处于活动状态。从线程运行到线程不运行有一个过渡期。
run() 方法返回后,在线程停止之前还有一小段时间。如果我们想知道线程类的start方法是否被调用或者线程是否被终止,我们必须使用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 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