Multi Threading

© examsiri.com
Question : 43 of 44
 
Marks: +1, -0
Given the following,
1. public class Test {
2.   public static void main (String [] args) {
3.    final Foo f = new Foo();
4.    Thread t = new Thread(new Runnable() {
5.     public void run() {
6.     f.doStuff();
7.     }
8.    });
9.    Thread g = new Thread() {
10.     public void run() {
11.      f.doStuff();
12.     }
13.    };
14.    t.start();
15.    g.start();
16.   }
17. }
1. class Foo {
2.   int x = 5;
3.   public void doStuff() {
4.    if (x < 10) {
5.     /*nothing to do*/
6.     try {
7.      wait();
8.     } catch(InterruptedException ex) { }
9.    } else {
10.   System.out.println("x is " + x++);
11.   if (x >= 10) {
12.    notify();
13.   }
14.   }
15. }
16. }

What is the result?
Go to Question: