aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang/Thread_Alive.java
blob: d97ea25c5d3c95b7e00ab461bc58cf6e96ca3fec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 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) {}
  }
  
}