启动线程用start方法而不是run方法

启动线程用start方法而不是用run方法

public static void main(String[] args) {
        
        Thread t=new Thread("Thread-TEST"){
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        };
        t.start();
        // t.run();
    }

 

start 方法会调用start0方法,start0是native方法,会启动一个线程,由虚拟机去调用线程的run方法,这里由于重写了父类的run方法,所以调用子类的run方法

用start启动线程,打印的是

 

说明创建了新的线程,线程名字是Thread-TEST

 

 

用run方法时

 

 说明这时候,是直接在主线程里执行的,没有创建线程,只是调用了对象的方法而已,因为没有调用start0本地方法

posted @ 2019-04-11 23:23  踏月而来  阅读(862)  评论(0)    收藏  举报