![]() |
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? |
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.