栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java多线程创建方式及理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java多线程创建方式及理解

 java线程有两种创建方式:

1、直接继承Thread并重写run方法,调用Thread中的start方法创建一个新的线程(本质上是调用run方法)

2、实现Runnable接口,并重写接口中的run方法(因为java不支持多重继承,所以第三方库的类如果要开启线程则必须使用该方法创建)

注:经查看源码发现Thread支持构造函数Runnable类的注入,Thread类本身也实现了Runnable的中的run方法,所以经过测试发现Thread中的run方法和start方法一样都会创建一个新的线程(存疑)

 

测试代码如下:

public class ThreadTest extends Thread{
   private int count  = 10;

    @Override
    public void run() {
        while (true)
        {
            System.out.println(count + "");
            if(--count == 0)
            {
                break;
            }

        }
  }
}

public class RunableTest implements Runnable{

    private int count  = 6;

    @Override
    public void run() {
        while (true)
        {
            System.out.println(count + "");
            if(--count == 0)
            {
                break;
            }

        }
    }
}

public class Main {

    public static void main(String[] args) {
   // write your code here
        //这两种Thread调用方法调用结果相同
//         new ThreadTest().start();
//         new ThreadTest().run();
//
//
        //这里Runable的调用结果均相同
        new RunableTest().run();
        Thread thread = new Thread(new RunableTest());
        thread.start();
        thread.run();

    }
}

   Thread和Runnable的区别:

1、通过Thread去创建多个线程访问同一个变量时,实际资源是不共享的

2、Runnable方便扩展第三方库的类去创建线程,因为java本质上不支持多继承,这个时候就没法使用Thread去创建线程了

3、Runnable可以增加代码的健壮性 

总结:Thread中重写run方法,实际上是重写Runnable接口的run方法。由此可见,Runnable才是最牛的!

   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677609.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号