CodingForums.com

CodingForums.com (http://www.codingforums.com/index.php)
-   Java and JSP (http://www.codingforums.com/forumdisplay.php?f=54)
-   -   Threads in Java, Help me out (http://www.codingforums.com/showthread.php?t=271229)

guptaraul 08-23-2012 03:43 PM

Threads in Java, Help me out
 
This is my source code
[CODE]
public class Thread2 implements Runnable{
public void run()
{
System.out.println("run().");
throw new RuntimeException("Problem");
}


public static void main(String[] args) {
Thread t=new Thread(new Thread2());
t.start();
System.out.println("End of Method");

}
}
[CODE]
I am getting 2 different outputs

O/p 1.
[CODE]
End of MEthod
run().
Exception in thread "Thread-0" java.lang.RuntimeException: Problem
at Thread2.run(Thread2.java:6)
at java.lang.Thread.run(Unknown Source)
[CODE]
O/p 2.
[CODE]
Exception in thread "Thread-0" java.lang.RuntimeException: Problem
at Thread2.run(Thread2.java:6)
at java.lang.Thread.run(Unknown Source)
End of MEthod
run().
[CODE]

Can anyone help me, why am I getting two different outputs?

Fou-Lu 08-23-2012 05:33 PM

The threads aren't synchronized, so there is no guarantee that the Runnable.run() will beat the main's println. Since you've tossed an exception, it must push that exception from the run into the main so that the main thread has to deal with the exception itself.

You'll need to read up on concurrency, here's the lesson's from the oracle tutorials: http://docs.oracle.com/javase/tutori...ncy/index.html
There are a number of methods, both manual and built in. I typically thread manually where I force explicit blocks on threads and notify when complete.


All times are GMT +1. The time now is 05:20 AM.

Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.