Yield doesn't do much of anything, really, nowadays; it offers other threads at the same priority a chance to run. Since virtually all modern
thread libraries do round-robin time-sliced execution anyway -- i.e., every thread of a given priority automatically gets a chance to run. yield() was much more important when
Java was new and most implementations were using a thread library (Green threads) that did
not do time slicing -- i.e., without a call to yield(), the running thread might never give up the CPU.