多线程

时间:2020-04-13 09:46:08   收藏:0   阅读:54

多线程 1

代码:

/**
 * 实现线程的第一种方式
 * 创建线程对象:new即可
 * 启动线程:调用线程对象的start方法
 */
public class TreadTest01 {
    public static void main(String[] args) {
        // 这里的代码属于主线程,在主栈中运行
        // 新建一个分支线程对象
        MyThread myThread = new MyThread();

//        myThread.run(); //这行代码不会启动线程,不会分配新的分支栈(单线程),普通的方法调用

        // 启动线程
        // start 方法的作用:启动一个分支线程,在 JVM 中开辟一个新的栈空间
        // 这段代码任务完成后瞬间就结束了,这段代码的任务只是为了开启一个新的栈空间,只要新的栈空间开出来,start方法就结束了,
        // 线程也就启动成功了。启动成功的线程会自动调用run方法,且run方法在分支栈的栈底部(压栈)
        // run方法在分支栈的地位类似于main方法在主栈的地位,run与main是平级的

        myThread.start(); // 瞬间结束
// 从这里开始并发
        // 这里的代码还是运行在主线程中
        for (int i = 0; i < 5; i++) {
            System.out.println("主线程---->" + i);
        }
    }
}

class MyThread extends Thread{
    @Override
    public void run() {
        // 在这里编写程序,这里的程序运行在分支栈中
        for (int i = 0; i < 10; i++) {
            System.out.println("分支线程--->" + i);
        }
    }
}

运行结果:

分支线程--->0
主线程---->0
分支线程--->1
主线程---->1
分支线程--->2
主线程---->2
分支线程--->3
主线程---->3
分支线程--->4
主线程---->4
分支线程--->5
分支线程--->6
分支线程--->7
分支线程--->8
分支线程--->9

1.由上面的结果可以看出,有两个线程在并发!
2.主线程结束后,分支线程还在继续执行!

原文:https://www.cnblogs.com/yerun/p/12688848.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!