package com.ajax;
//线程休眠:该方法可以让当前正在执行的线程暂停一段时间,进入休眠等待状态让其他线程可以执行
public class Example04 {public static void main(String[] args) throws Exception{new Thread(new SleepThread()).start();for(int i=1;i<=10;i++){if(i==5){Thread.sleep(2000);//当前线程休眠2秒}System.out.println("主线程正在输出:"+i);Thread.sleep(500);}}
}
class SleepThread implements Runnable{public void run(){for(int i=0;i<=10;i++){if(i==3){try{Thread.sleep(2000);}catch(InterruptedException e){e.printStackTrace();}}System.out.println("线程一正在输出:"+i);try{Thread.sleep(500);}catch(Exception e){e.printStackTrace();}}}
}
/*运行结果:
主线程正在输出:1
线程一正在输出:0
主线程正在输出:2
线程一正在输出:1
线程一正在输出:2
主线程正在输出:3
主线程正在输出:4
线程一正在输出:3
主线程正在输出:5
线程一正在输出:4
主线程正在输出:6
线程一正在输出:5
主线程正在输出:7
线程一正在输出:6
主线程正在输出:8
线程一正在输出:7
主线程正在输出:9
线程一正在输出:8
主线程正在输出:10
线程一正在输出:9
线程一正在输出:10
解释:运行结果可以看出当i=3的时候,线程一没有交替输出3,而是主线程接着输出,只有当线程休眠完了之后,两个线程菜会恢复交替执行*/