48 lines
985 B
Java
48 lines
985 B
Java
|
// Test the status of the isAlive() flag before, during, and after thread
|
||
|
// execution. Check that thread's threadgroup is null after thread exits.
|
||
|
// Origin: Bryce McKinlay <bryce@albatross.co.nz>
|
||
|
|
||
|
public class Thread_Alive implements Runnable
|
||
|
{
|
||
|
public static void main(String args[]) throws InterruptedException
|
||
|
{
|
||
|
Thread_Alive ta = new Thread_Alive();
|
||
|
Thread t = new Thread(ta);
|
||
|
System.out.println(t.isAlive());
|
||
|
t.start();
|
||
|
System.out.println(t.isAlive());
|
||
|
|
||
|
Thread.sleep(100);
|
||
|
|
||
|
synchronized (ta)
|
||
|
{
|
||
|
ta.notifyAll();
|
||
|
}
|
||
|
|
||
|
t.join();
|
||
|
System.out.println(t.isAlive());
|
||
|
|
||
|
try
|
||
|
{
|
||
|
t.start();
|
||
|
System.out.println("Error: dead thread can be restarted.");
|
||
|
}
|
||
|
catch (IllegalThreadStateException x)
|
||
|
{
|
||
|
System.out.println ("ok");
|
||
|
}
|
||
|
|
||
|
System.out.println(t.getThreadGroup());
|
||
|
}
|
||
|
|
||
|
public synchronized void run()
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
wait();
|
||
|
}
|
||
|
catch (InterruptedException x) {}
|
||
|
}
|
||
|
|
||
|
}
|