| re: why does this program not end?
andthen wrote:[color=blue]
> I read the following in the Thread API:
>
> When a Java Virtual Machine starts up, there is usually a single non-daemon
> thread (which typically calls the method named main of some designated
> class). The Java Virtual Machine continues to execute threads until either
> of the following occurs:
> - The exit method of class Runtime has been called and the security manager
> has permitted the exit operation to take place.
> - All threads that are not daemon threads have died, either by returning
> from the call to the run method or by throwing an exception that propagates
> beyond the run method.
>
> In the program below I have two Threads, the first thread reaches the end of
> main() and the second thread reaches the end of run() because I see all of
> the print statements. But the program doesn't terminate (I have to kill it
> with Control + c) and I'm wondering why that is.
>
> public class Test {
> public static void main(String[] args) throws Exception {
> Test2 h = new Test2();
> System.out.println("before start");
> h.start();
> System.out.println("after start");
> }
> }
>
>
> public class Test2 extends Thread {
> public void run() {
> System.out.println("starting run");
> System.out.println("ending run");
> }
> }
>
>[/color]
Also this program works as expected for me; I'm on Window XP SP 2 using:
java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
Thanks in Advance...
IchBin
__________________________________________________ ________________________
'The meeting of two personalities is like the contact of two chemical
substances:
if there is any reaction, both are transformed.'
- Carl Gustav Jung, (1875-1961), psychiatrist and psychologist |