创建线程的几种方式(4种常用方式详解)

创建线程的几种方式(4种常用方式详解)-mikechen

Java多线程经常会使用创建线程,下面我就重点详解4种常见的创建线程的方式。

1.继承Thread类创建线程

可以通过继承Thread类,并重写run()方法来创建线程的主要执行逻辑。

如下所示:

public class MyThread extends Thread {
    public void run() {
        // 线程执行的逻辑
    }
}

// 创建线程对象并启动
MyThread thread = new MyThread();
thread.start();

然后,可以创建Thread对象并调用start()方法来启动线程。

 

2.实现Runnable接口创建线程

另一种创建线程的方法是实现Runnable接口,并在该类中实现run()方法。

如下所示:

public class MyRunnable implements Runnable {
    public void run() {
        // 线程执行的逻辑
    }
}

// 创建线程对象并启动
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();

创建Thread对象,并将该Runnable对象传递给Thread构造函数,最后,调用start()方法来启动线程。

 

3.使用线程池创建线程

线程池是一组可重复使用的线程,可以减少线程创建和销毁的开销,可以使用Executor框架中的线程池来管理线程。

如下所示:

ExecutorService executor = Executors.newFixedThreadPool(10);

Runnable task = new Runnable() {
    public void run() {
        // 线程执行的逻辑
    }
};

executor.submit(task);

可以使用ThreadPoolExecutor类来创建线程池,并将Runnable或Callable对象提交给线程池来执行。

 

4.使用Lambda表达式创建线程

JDK1.8版本之后,还可以使用Java Lambda表达式,来简化创建线程。

如下所示:

// 继承Thread类
new Thread(() -> {
    // 线程执行的逻辑
}).start();

// 实现Runnable接口
Runnable task = () -> {
    // 线程执行的逻辑
};

new Thread(task).start();


// 使用线程池
ExecutorService executor = Executors.newFixedThreadPool(10);
executor.execute(() -> {
    // 线程执行的逻辑
});

以上就是4种常见的创建线程的方式详解,更多Java多线程,请查看:Java多线程编程详解(看这篇就足够了)

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法