Question: class New Thread implements Runnable { String name; // name of thread Thread t; NewThread(String threadname) { name = threadname; t = new Thread(this, name);


class New Thread implements Runnable { String name; // name of thread Thread t; NewThread(String threadname) { name = threadname; t = new Thread(this, name); System.out.println("New thread: " +t); t.start(); // Start the thread } public void run() { try { for(int i = 5; i > 0; i--) { System.out.println(name + ":" + i); Thread.sleep(5000); } } catch (InterruptedException e) { System.out.println(name + "Interrupted"); } System.out.println(name + " exiting."); } } class MultiThreadDemo { public static void main(String args[]) { new NewThread("One"); // start threads new New Thread("Two"); new New Thread("Three"); try { // wait for other threads to end Thread.sleep(10000); } catch (InterruptedException e) { System.out.println("Main thread Interrupted"); } System.out.println("Main thread exiting."); } } The output of the above program is as follows: New thread: Thread[One, 5, main] New thread: Thread[Two,5, main] New thread: Thread[Three,5, main] One: 5 Three: 5 TWO: 5 One: 4 Three: 4 TWO: 4 Main thread exiting. One: 3 Three: 3 TWO: 3 One: 2 Three: 2 TWO: 2 One: 1 Three: 1 TWO: 1 One exiting. Three exiting. Two exiting. What statements need to be added to the above program so that it generates output in which main thread will be the last one to finish the execution which is as follows: New thread: Thread[One, 5, main] New thread: Thread[Two, 5, main] New thread: Thread[Three,5, main] TWO: 5 One: 5 Three: 5 TWO: 4 One: 4 Three: 4 TWO: 3 One: 3 Three: 3 Two: 2 One: 2 Three: 2 Two: 1 One: 1 Three: 1 Two exiting One exiting. Three exiting. Main thread exiting
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
