Difficulty: Easy
Correct Answer: run();
Explanation:
Introduction / Context:Understanding the lifecycle of a Java thread is essential for writing concurrent programs. A frequent confusion is between the method that starts a thread and the method that actually executes on the new thread.
Given Data / Assumptions:
Concept / Approach:The start() method asks the JVM to create a new thread of execution, whereas the run() method is the entry point for the work performed by that thread. The developer places the thread's body (business logic) inside run().
Step-by-Step Solution:
1) Overriderun() in a Thread subclass or provide a Runnable whose run() implements the task.2) Call start() on the Thread instance to transition from New to Runnable; the JVM will then invoke run() on the new thread.3) The code inside run() is what executes concurrently.Verification / Alternative check:Calling run() directly from the main thread executes synchronously (no new thread). Only start() spawns a new thread that then calls run().
Why Other Options Are Wrong:
start() → starts the thread but doesn't contain the work.stop() → deprecated, dangerous; not the body.main() → process entry point, not a thread's body.Common Pitfalls:Beginners often call run() directly, mistakenly assuming it starts a new thread.
Final Answer:run();
Discussion & Comments