Java Programming - Threads - Discussion


What will be the output of the program?

class MyThread extends Thread 
    public static void main(String [] args) 
        MyThread t = new MyThread(); /* Line 5 */;  /* 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..

Answer: Option C


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.

Risha said: (Jan 24, 2014)  
It shows an error: Error - At least one public class is required in main file.

Stefan said: (Jan 20, 2017)  
Doesn't ++i in the for loop suggest i is incremented to value 2 before the print operation calls?

Nikhil said: (Jul 25, 2021)  

i++ and ++i is same if we call it as a statement ending with ';'

Post your comments here:

Name *:

Email   : (optional)

» Your comments will be displayed only after manual approval.