线程执行顺序

本文通过代码示例和执行结果分析,详细解释了多线程环境下程序的执行流程。在给定的例子中,线程A先启动并休眠3秒,接着主线程输出文字并休眠10秒。待线程A休眠结束,输出‘子线程执行’,最后主线程结束休眠,继续执行剩余操作。
摘要由CSDN通过智能技术生成

代码:

/**
 * @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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值