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

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

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

1.继承Thread类创建线程

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

如下所示:

  1. public class MyThread extends Thread {
  2. public void run() {
  3. // 线程执行的逻辑
  4. }
  5. }
  6.  
  7. // 创建线程对象并启动
  8. MyThread thread = new MyThread();
  9. thread.start();

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

 

2.实现Runnable接口创建线程

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

如下所示:

  1. public class MyRunnable implements Runnable {
  2. public void run() {
  3. // 线程执行的逻辑
  4. }
  5. }
  6.  
  7. // 创建线程对象并启动
  8. MyRunnable runnable = new MyRunnable();
  9. Thread thread = new Thread(runnable);
  10. thread.start();

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

 

3.使用线程池创建线程

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

如下所示:

  1. ExecutorService executor = Executors.newFixedThreadPool(10);
  2.  
  3. Runnable task = new Runnable() {
  4. public void run() {
  5. // 线程执行的逻辑
  6. }
  7. };
  8.  
  9. executor.submit(task);

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

 

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

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

如下所示:

  1. // 继承Thread类
  2. new Thread(() -> {
  3. // 线程执行的逻辑
  4. }).start();
  5.  
  6. // 实现Runnable接口
  7. Runnable task = () -> {
  8. // 线程执行的逻辑
  9. };
  10.  
  11. new Thread(task).start();
  12.  
  13.  
  14. // 使用线程池
  15. ExecutorService executor = Executors.newFixedThreadPool(10);
  16. executor.execute(() -> {
  17. // 线程执行的逻辑
  18. });

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

评论交流
    说说你的看法
欢迎您,新朋友,感谢参与互动!