Threads

Q1: What will be the output of the program?
class s1 implements Runnable 
{ 
    int x = 0, y = 0; 
    int addX() {x++; return x;} 
    int addY() {y++; return y;} 
    public void run() { 
    for(int i = 0; i < 10; i++) 
        System.out.println(addX() + ' ' + addY()); 
} 
    public static void main(String args[]) 
    { 
        s1 run1 = new s1(); 
        s1 run2 = new s1(); 
        Thread t1 = new Thread(run1); 
        Thread t2 = new Thread(run2); 
        t1.start(); 
        t2.start(); 
    } 
}

A Compile time Error: There is no start() method

B Will print in this order: 1 1 2 2 3 3 4 4 5 5...

C
Will print but not exactly in an order (e.g: 1 1 2 2 1 1 3 3...)

D Will print in this order: 1 2 3 4 5 6... 1 2 3 4 5 6...

ANS:A - Compile time Error: There is no start() method

Both threads are operating on different sets of instance variables. If you modify the code of the run() method to print the thread name it will help to clarify the output: public void run()
{
for(int i = 0; i < 10; i++)

System.out.println(
Thread.currentThread().getName() + ': ' + addX() + ' ' + addY()
);

}



img not found
img

For help Students Orientation
Mcqs Questions

One stop destination for examination, preparation, recruitment, and more. Specially designed online test to solve all your preparation worries. Go wherever you want to and practice whenever you want, using the online test platform.