| // Test the status of the isAlive() flag before, during, and after thread |
| // execution. Check that thread's threadgroup is null after thread exits. |
| |
| 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(50); |
| |
| 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) {} |
| } |
| |
| } |