sleep与yield异同
sleep:是Thread类的一个静态方法,该方法会让当前正在 执行的线程暂停执行,从而将执行机会让给其他线程执行。sleep(long mills)参数指定当前线程暂停执行的时间,经过这段阻塞时间后,该线程会进入就绪状态,等候线程调度器的调度。sleep方法声明抛出了InterruptedException异常,所以调用sleep方法时要么在方法开始处抛出异常要么使用try{}..catch{}块进行捕获。 yield方法只会给优先级相同或更高优先级的线程执行机会。yield不会将线程转入阻塞状态,只是强制当前线程进入就绪状态。因此完全有可能某个线程调用yield方法暂停后,立即又获得处理器资源被执行。yield方法没有声明抛出任何异常。 sleep比yield方法有更好的可移植性, 通常,不要依靠yield控制并发线程的执行。 code: sleep public class SleepDemo extends Thread { public SleepDemo(String name) { super(name); } public void run() { for(int i=0;i<50;i++) { System.out.println(getName()+"----"+i); if(i==20) { try { Thread.sleep(1000*10); }