Multi Threading

© examsiri.com
Question : 26 of 44
 
Marks: +1, -0
Given:
1. public class TwoThreads {
2
3.   private static Object resource = new Object();
4.
5.   private static void delay(long n) {
6.    try { Thread.sleep(n); }
7.    catch (Exception e) { System.out.print(”Error “); }
8.   }
9
10.   public static void main(String[] args) {
11.    System.out.print(”StartMain “);
12.    new Thread1().start();
13.    delay(1000);
14.    Thread t2 = new Thread2();
15.    t2.start();
16.    delay(1000);
17.    t2.interrupt
18.    delay(1000);
19.    System.out.print(”EndMain “);
20.   }
21.
22.   static class Thread 1 extends Thread {
23.    public void run() {
24.     synchronized (resource) {
25.      System.out.print(”Start1 “);
26.      delay(6000);
27.      System.out.print(”End1 “);
28.     }
29.    }
30.   }
31.
32. static class Thread2 extends Thread {
33.    public void run() {
34.     synchronized (resource) {
35.      System.out.print(”Start2 “);
36.       delay(2000);
37.      System.out.print(”End2 “);
38.      }
39.     }
40.    }
41. }

Assume that sleep(n) executes in exactly m milliseconds, and all other code executes in an insignificant amount of time. What is the output if the main() method is run?
Go to Question: