Threads - Programming

Q1:

What will be the output of the program?
class MyThread extends Thread 
{
    public static void main(String [] args) 
    {
        MyThread t = new MyThread(); /* Line 5 */
        t.run();  /* Line 6 */
    }

    public void run() 
    {
        for(int i=1; i < 3; ++i) 
        {
            System.out.print(i + '..');
        }
    }
}

A This code will not compile due to line 5.

B This code will not compile due to line 6.

C 1..2..

D 1..2..3..

ANS:A - This code will not compile due to line 5.

Line 6 calls the run() method, so the run() method executes as a normal method should and it prints '1..2..' A is incorrect because line 5 is the proper way to create an object. B is incorrect because it is legal to call the run() method, even though this will not start a true thread of execution. The code after line 6 will not execute until the run() method is complete. D is incorrect because the for loop only does two iterations.