I think I'm going to have to eat my words yet again.
Thread.yield() as of Java 5 should be deprecated.
Nanosecond-granularity timing: The new java.lang.System.nanotime() method that provides high-precision timing facilities has been added to enable access to nanosecond-granularity time source for making relative time measurements, and methods that accept timeouts such as BlockingQueue.offer(), BlockingQueue.poll(), Lock.tryLock(), Condition.wait(), and Thread.sleep(). Note that the precision of nanotime() is platform-dependent.
You should take note that Thread.sleep() has NS accuracy.
I suggest you try Thread.sleep(1) for more appropriate results Princec. http://java.sun.com/developer/technicalArticles/J2SE/concurrency/