File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes yield or join Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "yield or join" Watch "yield or join" New topic

yield or join

Asha Pathik
Ranch Hand

Joined: Feb 08, 2006
Posts: 143
i came across this question in K&B1.4 Threads chapter....

Which three guarantee that a thread will leave the running state?
A. yield()
B. wait()
C. notify()
D. notifyAll()
E. sleep(1000)
F. aLiveThread.join()
G. Thread.killThread()

answer is B, E, and F.

B and E are fine but for F the explanation was based on the assumption that aLiveThread is alive. But then can't we say that option A is also correct if we assume there are some threads of same priority as the current thread in runnable state.

Plz help ...


SCJP 1.5
Greg Charles

Joined: Oct 01, 2001
Posts: 2968

Well, I think the key is the word "guarantee". yield is more of a suggestion to the scheduler, and as you pointed out, there might not even be other threads to yield to. That aLiveThread is a live thread is implied by the variable name. That's more of a K&B thing than an exam thing. In a real program, aLiveThread may be in different states at different times, but in a K&B self-test, you can assume it is what it says it is.
I agree. Here's the link:
subject: yield or join
It's not a secret anymore!