Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

yield or join

 
Asha Pathik
Ranch Hand
Posts: 143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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 ...

Asha
 
Greg Charles
Sheriff
Posts: 2989
12
Firefox Browser IntelliJ IDE Java Mac Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic