Difficulty: Easy
Correct Answer: start() and run()
Explanation:
Introduction / Context:
Thread lifecycle methods are easy to confuse with Object’s monitor methods. This question tests your ability to distinguish Thread-specific APIs from Object’s synchronization primitives.
Given Data / Assumptions:
java.lang.Thread
.
Concept / Approach:start()
is a Thread method that registers the thread with the scheduler and ultimately invokes run()
on a new call stack. run()
is also a Thread method (and the single abstract method in Runnable). Conversely, wait()
and notify()
are Object methods, not Thread methods. There is no standard terminate()
in Thread.
Step-by-Step Solution:
start()
→ yes, Thread method.run()
→ yes, Thread method (also declared in Runnable as public abstract).wait()
, notify()
→ belong to Object.terminate()
→ nonexistent in the core API.
Verification / Alternative check:
Cross-check in Javadoc for java.lang.Thread
and java.lang.Object
.
Why Other Options Are Wrong:
They include Object methods or non-existent methods.
Common Pitfalls:
Thinking wait()
/notify()
are Thread utilities; they operate on an object’s monitor.
Final Answer:
start() and run()
Discussion & Comments