Which two of the following methods are members of java.lang.Thread (not inherited from Object or declared elsewhere)?

Java Programming Threads Difficulty: Easy
Choose an option
  • A
    start() and run()
  • B
    wait() and notify()
  • C
    notify() and run()
  • D
    wait() and run()
  • E
    terminate() and run()

Answer

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:

  • We must pick two methods that actually belong to 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
No comments yet. Be the first to comment!
Join Discussion