Thread.yield() tells the CPU to pause the current thread and allow other threads to run. See :
http://stackoverflow.com/questions/4...sleep0-in-java
Unless that is what you are going for, I'm thinking that yield() doesn't find any other threads to run, so it just runs right away, making the loop incredibly fast (100% usage).