码迷,mamicode.com
首页 > 编程语言 > 详细

创建线程时如果既传入了runnable对象,又继承thread重写了run方法,会执行的哪里的代码

时间:2019-04-12 10:27:47      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:ima   图片   ccf   int   image   print   star   thread   col   

1 使用线程的方式,继承thread类,重写run方法

        new Thread() {
            
            @Override
            public void run() {
                System.out.println("我是新的线程");
            }
                        
        }.start();

重写之后,线程执行的就是我们自己的run方法,而在Thread类中的run方法就不会被执行

这是Thread类的run方法

技术图片

在这个方法中判断target是否为null,不为null,才执行target的run方法

 

2  既传入了runnable对象,又继承thread重写了run方法

        Runnable runnable = new Runnable() {
            
            @Override
            public void run() {
                System.out.println("2  : "+Thread.currentThread().getName());
                System.out.println("*************");
            }
        };
        
        new Thread(runnable) {

            @Override
            public void run() {
                super.run();
                System.out.println("1 : "+Thread.currentThread().getName());
                System.out.println("##############");
            }
            
        }.start();

 

注意:重写了run方法,就不会执行父类Thread的run方法,关键看在重写的run方法里,有没有调用super.run(),有调用就会执行传入的runnable,没有调用就不会执行传入的runnable

始终只会是创建一个线程,打印的线程名是一样的

技术图片

 

创建线程时如果既传入了runnable对象,又继承thread重写了run方法,会执行的哪里的代码

标签:ima   图片   ccf   int   image   print   star   thread   col   

原文地址:https://www.cnblogs.com/moris5013/p/10694340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!