Which statement correctly creates a Java thread from a class that implements Runnable and starts it running?

Difficulty: Easy

Correct Answer: new Thread(new MyRunnable()).start();

Explanation:

Introduction / Context:There are two common ways to create threads in Java: extend Thread or implement Runnable. This question focuses on the Runnable approach.

Given Data / Assumptions:

  • MyRunnable implements Runnable and overrides run().

Concept / Approach:To execute a Runnable on a new thread, wrap the Runnable in a Thread and call start() on the Thread instance.

Step-by-Step Solution:

1) Construct a Thread with the Runnable: new Thread(new MyRunnable()).2) Call start() to spawn the new thread; the JVM then calls run() on that thread.

Verification / Alternative check:Calling run() directly executes on the current thread, not a new one.

Why Other Options Are Wrong:

  • Option A → invalid constructor call; Runnable is an interface, not a constructor parameter like that.
  • Option B → calls run() directly on the new Thread object constructed with a type token (also invalid usage).
  • Option D → Runnable has no start() method.

Common Pitfalls:Confusing start() with run() and trying to call start() on a Runnable instead of a Thread.

Final Answer:new Thread(new MyRunnable()).start();

More Questions from Threads

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion