首页 > 编程语言 > 详细

多线程Thread,Run()/Start() 运行的区别

时间:2021-06-25 17:08:08      阅读:18      评论:0      收藏:0      [点我收藏+]

下面是继承了Thread类的线程

当一个类同时有子线程和主线程的时候,那么两条线程是一起运行的,

先后顺序由CPU进行调度,还是下面的代码:测试直接使用run(),start();

public class ThreadTest1 extends Thread{

    /**
     * 线程 Thread类
     * Thread 实现了 Runnable接口
     *
     * 这里是线程体
     */
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("线程体:"+i);
        }
    }

    /**
     * 主线程
     * @param args
     */
    public static void main(String[] args) {
        ThreadTest1 threadTest1 = new ThreadTest1();
        threadTest1.start();
        for (int i = 0; i < 20; i++) {
            System.out.println("主线程:"+i);
        }
    }
}

使用run() 运行:

Run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
技术分享图片

使用run方法直接运行的时候,测试了10次,没有都是先运行run()方法内部的程序,在运行Main()方法内的程序,

run方法可以创建一个线程,但是相当于同步的方式,没有多线程的存在。

使用run方法总结: 和我们之前的程序一样,直接从上而下运行。当run() 方法结束后在运行主线程中的程序。

使用Start() 方法运行:

start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;

主线程:14 主线程:15 主线程:16 主线程:17 主线程:18 主线程:19 线程体:2 线程体:3 线程体:4 线程体:5 线程体:6 线程体:7 线程体:8 线程体:9 线程体:10

使用Start() 运行程序的时候,发现结果会出现交替运行。

只有调用start方法才是交给jvm管理,才是多线程。

多线程Thread,Run()/Start() 运行的区别

原文:https://www.cnblogs.com/Areses/p/14930741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!