More Questions from Threads

In core Java concurrency, which three of the following are methods declared by java.lang.Object (select exactly three)? notify() notifyAll() isInterrupted() synchronized() interrupt() wait(long msecs) sleep(long msecs) yield()

Java Programming Threads Difficulty: Easy
Choose an option
  • A
    1, 2, 4
  • B
    2, 4, 5
  • C
    1, 2, 6
  • D
    2, 3, 4
  • E
    None of the above

Answer

Correct Answer: 1, 2, 6

Explanation

Introduction / Context:Java’s concurrency model splits behavior between the foundational java.lang.Object class and the java.lang.Thread class. This question tests whether you can correctly identify which synchronization-related methods actually live on Object rather than Thread.

Given Data / Assumptions:

  • A list of eight APIs mixes Object methods, Thread methods, keywords, and unrelated calls.
  • We must choose exactly three that are declared in java.lang.Object.

Concept / Approach:In Java, intrinsic locking (monitors) is tied to every object instance. Consequently, the coordination primitives that manipulate an object’s monitor are instance methods on Object: wait() (and its overloads), notify(), and notifyAll(). Thread-scheduling helpers such as sleep() and yield() are static methods on Thread. Interruption APIs (interrupt(), isInterrupted()) also belong to Thread. The token synchronized is a language keyword, not a method.

Step-by-Step Solution:

Identify Object methods: notify() → yes (Object instance method).Identify Object methods: notifyAll() → yes (Object instance method).Identify Object methods: wait(long msecs) → yes (Object instance method; there are also wait() and wait(long,int)).Eliminate isInterrupted() → Thread instance method.Eliminate synchronized() → not a method; it is a keyword.Eliminate interrupt() → Thread instance method.Eliminate sleep(long) → Thread static method.Eliminate yield() → Thread static method.

Verification / Alternative check:Consulting the Object API confirms the presence of wait/notify/notifyAll. Thread API holds sleep, yield, interrupt, and isInterrupted.

Why Other Options Are Wrong:They point to Thread methods or a language keyword and are not declared on Object.

Common Pitfalls:Assuming all concurrency helpers live on Thread; in fact, monitor control is on Object.

Final Answer:1, 2, 6

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