代码:
/**
* @author cheyuhang on 2021/5/6
*/
public class Test1 {
public static void main(String[] args) {
new Thread(()-> {
try {
TimeUnit.SECONDS.sleep(3L);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("子线程执行");
},"A").start();
System.out.println("cheyuhang");
try {
TimeUnit.SECONDS.sleep(10L);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("sadffffffffffffffffffffffffffffffff");
}
}
执行结果:
cheyuhang
子线程执行
sadffffffffffffffffffffffffffffffff
执行过程解释:
首先程序的执行顺序是自上而下的,先执行A线程,因为A线程睡了3秒,所以会继续执行往下执行main线程,会输出"cheyuhang",然后继续执行主线程的睡10s的操作,后续操作就停止了,此时A线程睡的时间已经到了,就会输出"子线程执行", 此时主线程睡10s时间到了,继续执行后续的操作,那么就会输出"sadffffffffffffffffffffffffffffffff"