KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tanukisoftware > wrapper > test > DaemonThreads


1 package org.tanukisoftware.wrapper.test;
2
3 /*
4  * Copyright (c) 1999, 2006 Tanuki Software Inc.
5  *
6  * Permission is hereby granted, free of charge, to any person
7  * obtaining a copy of the Java Service Wrapper and associated
8  * documentation files (the "Software"), to deal in the Software
9  * without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sub-license,
11  * and/or sell copies of the Software, and to permit persons to
12  * whom the Software is furnished to do so, subject to the
13  * following conditions:
14  *
15  * The above copyright notice and this permission notice shall be
16  * included in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  *
27  *
28  * Portions of the Software have been derived from source code
29  * developed by Silver Egg Technology under the following license:
30  *
31  * Copyright (c) 2001 Silver Egg Technology
32  *
33  * Permission is hereby granted, free of charge, to any person
34  * obtaining a copy of this software and associated documentation
35  * files (the "Software"), to deal in the Software without
36  * restriction, including without limitation the rights to use,
37  * copy, modify, merge, publish, distribute, sub-license, and/or
38  * sell copies of the Software, and to permit persons to whom the
39  * Software is furnished to do so, subject to the following
40  * conditions:
41  *
42  * The above copyright notice and this permission notice shall be
43  * included in all copies or substantial portions of the Software.
44  */

45
46 /**
47  *
48  *
49  * @author Leif Mortenson <leif@tanukisoftware.com>
50  */

51 public class DaemonThreads implements Runnable JavaDoc {
52     private static boolean m_started = false;
53     
54     /*---------------------------------------------------------------
55      * Runnable Method
56      *-------------------------------------------------------------*/

57     public void run() {
58         m_started = true;
59         while(true) {
60             System.out.println(Thread.currentThread().getName() + " running...");
61             try {
62                 Thread.sleep(500);
63             } catch (InterruptedException JavaDoc e) {
64             }
65         }
66     }
67     
68     /*---------------------------------------------------------------
69      * Main Method
70      *-------------------------------------------------------------*/

71     public static void main(String JavaDoc[] args) {
72         System.out.println("Daemon Thread Test Running...");
73         System.out.println("Launching background daemon threads...");
74         
75         DaemonThreads app = new DaemonThreads();
76         for (int i = 0; i < 2; i++) {
77             Thread JavaDoc thread = new Thread JavaDoc(app, "App-Thread-" + i);
78             thread.setDaemon(true);
79             thread.start();
80         }
81         
82         // Wait for at least one of the daemon threads to start to make sure
83
// this main method does not exit prematurely and trigger a JVM
84
// shutdown.
85
while ( !m_started )
86         {
87             try
88             {
89                 Thread.sleep( 10 );
90             }
91             catch ( InterruptedException JavaDoc e )
92             {
93                 // Ignore.
94
}
95         }
96         
97         System.out.println("The JVM should exit momentarily.");
98         
99         System.out.println("Daemon Thread Test Main Done...");
100     }
101 }
102
103
Popular Tags