Home / Java Programming / Threads :: Discussion

Discussion :: Threads

  1.  public class MyRunnable implements Runnable

     {

         public void run()

        {

          // some code here

        }

      }

    which of these will create and start this thread?

     

  2. A.

    new Runnable(MyRunnable).start();

    B.

    new Thread(MyRunnable).run();

    C.

    new Thread(new MyRunnable()).start();

    D.

    new MyRunnable().start();

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    Because the class implements Runnable, an instance of it has to be passed to the Thread constructor, and then the instance of the Thread has to be started.

    A is incorrect. There is no constructor like this for Runnable because Runnable is an interface, and it is illegal to pass a class or interface name to any constructor.

    B is incorrect for the same reason; you can't pass a class or interface name to any constructor.

    D is incorrect because MyRunnable doesn't have a start() method, and the only start() method that can start a thread of execution is the start() in the Thread class.


Be The First To Comment