blob: 9acc89e6ca37c9f1551a24d142bfddc052de1b16 [file] [log] [blame]
jeffhao5d1ac922011-09-29 17:41:15 -07001// Copyright 2006 The Android Open Source Project
2
3/**
4 * Test some basic thread stuff.
5 */
6public class Main {
7 public static void main(String[] args) {
8 for (int i = 0; i < 512; i++) {
9 MyThread myThread = new MyThread();
10 myThread.start();
11 try {
12 Thread.sleep(1);
13 } catch (InterruptedException ie) {
14 ie.printStackTrace();
15 }
16 }
17
18 go();
19 System.out.println("thread test done");
20 }
21
22 public static void go() {
23 Thread t = new Thread(null, new ThreadTestSub(), "Thready", 7168);
24
25 t.setDaemon(false);
26
27 System.out.print("Starting thread '" + t.getName() + "'\n");
28 t.start();
29
30 try {
31 t.join();
32 } catch (InterruptedException ex) {
33 ex.printStackTrace();
34 }
35
36 System.out.print("Thread starter returning\n");
37 }
38
39 /*
40 * Simple thread capacity test.
41 */
42 static class MyThread extends Thread {
43 private static int mCount = 0;
44 public void run() {
45 System.out.println("running " + (mCount++));
46 }
47 }
48}
49
50class ThreadTestSub implements Runnable {
51 public void run() {
52 System.out.print("@ Thread running\n");
53
54 try {
55 Thread.currentThread().setDaemon(true);
56 System.out.print("@ FAILED: setDaemon() succeeded\n");
57 } catch (IllegalThreadStateException itse) {
58 System.out.print("@ Got expected setDaemon exception\n");
59 }
60
61 //if (true)
62 // throw new NullPointerException();
63 try {
64 Thread.sleep(2000);
65 }
66 catch (InterruptedException ie) {
67 System.out.print("@ Interrupted!\n");
68 }
69 finally {
70 System.out.print("@ Thread bailing\n");
71 }
72 }
73}