Sail E0 Webinar
Question

Which two statements are true?

     1. Deadlock will not occur if wait()/notify() is used

     2. A thread will resume execution as soon as its sleep duration expires.

     3. Synchronization can prevent two objects from being accessed by the same thread.

     4. The wait() method is overloaded to accept a duration.

     5. The notify() method is overloaded to accept a duration.

     6. Both wait() and notify() must be called from a synchronized context.


Options:
A .  1 and 2
B .  3 and 5
C .  4 and 6
D .  1 and 3
Answer: Option C

Statements (4) and (6) are correct. (4) is correct because the wait() method is overloaded to 

accept a wait duration in milliseconds. If the thread has not been notified by the time the wait 

duration has elapsed, then the thread will move back to runnable even without having been 

notified.

(6) is correct because wait()/notify()/notifyAll() must all be called from within a synchronized, 

context. A thread must own the lock on the object its invoking wait()/notify()/notifyAll() on.

(1) is incorrect because wait()/notify() will not prevent deadlock.

(2) is incorrect because a sleeping thread will return to runnable when it wakes up, but it might 

not necessarily resume execution right away. To resume executing, the newly awakened thread 

must still be moved from runnable to running by the scheduler.

(3) is incorrect because synchronization prevents two or more threads from accessing the same

 object.

(5) is incorrect because notify() is not overloaded to accept a duration.



Was this answer helpful ?
Next Question

Submit Solution

Your email address will not be published. Required fields are marked *

Latest Videos

Latest Test Papers