On Thu, 8 Feb 2001, Joseph Shraibman wrote: > Is it just me or does Thread.yield() not work anymore with the 2.4.0 > kernel? Works fine for me (kernel 2.4.1, ibm jdk-1.3 build cx130-20000815). Use the attached file for a quick test. -- dimitris mailto:[EMAIL PROTECTED]
public class test_yield implements Runnable { int when_; int run_; test_yield( int when ) { when_ = when; } public void run() { while( true ) { run_++; for ( int i = 0; i < when_; i++ ); Thread.currentThread().yield(); } } public static void main( String[] args ) { int when = args.length > 0 ? Integer.parseInt( args[0] ) : 100000000; test_yield t1,t2,t3; new Thread( t1 = new test_yield( when ) ).start(); new Thread( t2 = new test_yield( when ) ).start(); new Thread( t3 = new test_yield( when ) ).start(); while( true ) try { Thread.currentThread().sleep( 1000 ); int c1 = t1.run_; int c2 = t2.run_; int c3 = t3.run_; System.out.println( "t1: " + c1 + " t2: " + c2 + " t3: " + c3 ); } catch ( InterruptedException exc ){} } }