Java多线程和并发,Thread中的start和run的区别

Posted 寻找梦想的大熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程和并发,Thread中的start和run的区别相关的知识,希望对你有一定的参考价值。

目录

1.调用run方法

2.调用start方法

3.start和run的区别

二、Thread中的startrun的区别

1.调用run方法

public class ThreadTest {
    private static void attack() {
        System.out.println("Current Thread is : " + Thread.currentThread().getName());
    }

    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(){
            @Override
            public void run() {
                attack();
            }
        };
        System.out.println("current main thread is : " + Thread.currentThread().getName());
        t.run();
    }

 显示线程只有一个,即main线程

 

 

2.调用start方法

public class ThreadTest {
    private static void attack() {
        System.out.println("Current Thread is : " + Thread.currentThread().getName());
    }

    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> attack());
        System.out.println("current main thread is : " + Thread.currentThread().getName());
        t.start();
    }
}


 
我们是用
lambda表达式来重写的Thread类,这个时候就会创建一个新的线程

 

3.startrun的区别

 

 

以上是关于Java多线程和并发,Thread中的start和run的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程与并发

Java并发/多线程系列——线程安全篇

Java并发/多线程系列——线程安全篇

一篇博客带你轻松应对java面试中的多线程与高并发

Java基础加强之并发Thread中start()和run()的区别

Java——并发编程