多线程的一个面试题

版权声明: https://blog.csdn.net/Dongguabai/article/details/84789787
 public static void main(String[] args) {
        new Thread(()->{
            System.out.println("===============");
        }){
            @Override
            public void run() {
                System.out.println("--------");
            }
        }.start();
    }

这段函数的执行结果是什么呢?

运行结果:

结合 start() 方法的官方描述,就是执行当前线程的 run() 方法:

start

public void start()

使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。

多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。

抛出:

IllegalThreadStateException - 如果线程已经启动。

另请参见:

run()stop()

 再看这样一个例子:

 public static void main(String[] args) {
        new Thread(() -> {
            System.out.println("===============");
        }) {
        }.start();
    }

运行结果:

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/84789787
今日推荐