Machine-translated by Google. Questions are authored in English.
Top

Discussion

Consider what Thread.yield() promises the caller. Which statement is correct?

  • A.yield() blocks the calling thread until every other runnable thread has run once.
  • B.yield() is a hint that the scheduler is free to ignore.
  • C.yield() guarantees that another runnable thread of equal priority runs next.
  • D.yield() moves the calling thread to the end of the run queue for its priority.

Answer: B

The javadoc calls yield a hint to the scheduler that the current thread is willing to give up its processor, and says the scheduler is free to ignore it. Nothing is promised about which thread runs next, or that any switch happens at all, so correctness must never depend on it.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.