Thread.yield()方法的作用:暂停当前正在执行的线程,并执行其他线程。(可能没有效果)
yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。
结论:大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。
public class TestYield {
	  public static void main(String [] args){
		    MyThread t1 = new MyThread("t1");
		    MyThread t2 = new MyThread("t2");
		    t1.start();
		    t2.start();
	  }
}
class MyThread extends Thread{
	  MyThread(String s){
		  super(s);
	  }
	
	  public void run(){
		    for(int i = 0; i <= 30; i ++){
			      System.out.println(getName()+":"+i);
			      if(("t1").equals(getName())){
				        if(i == 0){
					          yield();
				        }
			      }
		    }
	  }
	
}
运行的结果是变化的。
原文:http://www.cnblogs.com/lovefeng/p/4675125.html