Results 1 to 3 of 3
- 06-14-2010, 04:16 AM #1
Member
- Join Date
- Jun 2010
- Posts
- 1
- Rep Power
- 0
need answers to this java program
hello,everyone. i am a new commer. i read the java tutorial. then i hava got a question. the source code is as follows:
in the WHILE block, is the t.join() necessary ? the t.interrupt has made the t thread interrupted, why does the main thread still have to wait the t thread to finish?Java Code:public class SimpleThreads { // Display a message, preceded by the name // of the current thread static void threadMessage(String message) { String threadName = Thread.currentThread().getName(); System.out.format("%s: %s%n", threadName, message); } private static class MessageLoop implements Runnable { public void run() { String importantInfo[] = { "Mares eat oats", "Does eat oats", "Little lambs eat ivy", "A kid will eat ivy too" }; try { for (int i = 0; i < importantInfo.length; i++) { // Pause for 4 seconds Thread.sleep(4000); // Print a message threadMessage(importantInfo[i]); } } catch (InterruptedException e) { threadMessage("I wasn't done!"); } } } public static void main(String args[]) throws InterruptedException { // Delay, in milliseconds before we interrupt MessageLoop // thread (default one hour). long patience = 1000 * 60 * 60; // If command line argument present, // gives patience in seconds. if (args.length > 0) { try { patience = Long.parseLong(args[0]) * 1000; } catch (NumberFormatException e) { System.err.println("Argument must be an integer."); System.exit(1); } } threadMessage("Starting MessageLoop thread"); long startTime = System.currentTimeMillis(); Thread t = new Thread(new MessageLoop()); t.start(); threadMessage("Waiting for MessageLoop thread to finish"); // loop until MessageLoop thread exits while (t.isAlive()) { threadMessage("Still waiting..."); // Wait maximum of 1 second for MessageLoop thread to // finish. t.join(1000); if (((System.currentTimeMillis() - startTime) > patience) && t.isAlive()) { threadMessage("Tired of waiting!"); t.interrupt(); // Shouldn't be long now -- wait indefinitely t.join(); } } threadMessage("Finally!"); } }Last edited by Eranga; 06-14-2010 at 04:21 AM. Reason: code tags added
- 06-14-2010, 04:22 AM #2
- Join Date
- Jul 2007
- Location
- Colombo, Sri Lanka
- Posts
- 11,374
- Blog Entries
- 1
- Rep Power
- 18
Please use code tags when you posting again in the forum. Unformated codes are really hard to read. If you don't know how to do it, please check on my forum signature.
- 06-14-2010, 04:23 AM #3
- Join Date
- Jul 2007
- Location
- Colombo, Sri Lanka
- Posts
- 11,374
- Blog Entries
- 1
- Rep Power
- 18
Similar Threads
-
Java- Interview Questions and Answers
By nishants in forum Java SoftwareReplies: 0Last Post: 04-17-2010, 12:48 PM -
Inheritance problems...quick answers if possible :)
By circuspeanuts in forum New To JavaReplies: 1Last Post: 04-13-2009, 09:06 PM -
How to execute an External Program through Java program
By Java Tip in forum java.ioReplies: 0Last Post: 04-04-2008, 02:40 PM -
www.javaadvice.com - The one stop resource for all your Java questions and answers
By JAdmin in forum Reviews / AdvertisingReplies: 0Last Post: 01-24-2008, 07:53 PM -
How to execute an External Program through Java program
By JavaBean in forum Java TipReplies: 0Last Post: 10-04-2007, 09:33 PM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks