Java Programming - Threads - Discussion


Which of the following will not directly cause a thread to stop?

[A]. notify()
[B]. wait()
[C]. InputStream access
[D]. sleep()

Answer: Option A


Option A is correct. notify() - wakes up a single thread that is waiting on this object's monitor.

Option B is wrong. wait() causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object.

Option C is wrong. Methods of the InputStream class block until input data is available, the end of the stream is detected, or an exception is thrown. Blocking means that a thread may stop until certain conditions are met.

Option D is wrong. sleep() - Causes the currently executing thread to sleep (temporarily cease execution) for a specified number of milliseconds. The thread does not lose ownership of any monitors.

Rafael said: (Dec 14, 2012)  
This is not entirely true: I can write my own InputStream which might e.g. only provide mock data. This would not cause a thread to stop.

Chandan Shankar said: (Nov 24, 2017)  
Yes, agree @Rafael.

Raj said: (Dec 7, 2018)  
Please anyone can explain this?

Post your comments here:

Name *:

Email   : (optional)

» Your comments will be displayed only after manual approval.