21xrx.com
2025-04-22 15:08:11 Tuesday
文章检索 我的文章 写文章
Java线程创建的三种模式
2023-06-15 19:14:56 深夜i     9     0
Java线程 继承Thread类 实现Runnable接口 实现Callable接口

我一直对多线程编程很感兴趣,最近我学到了Java线程的创建方式,Java线程可以通过三种不同的模式来创建:继承Thread类、实现Runnable接口、实现Callable接口并使用FutureTask包装器。

继承Thread类是最简单的线程创建方式之一。我们可以创建一个继承Thread类的子类,并重写run()方法来执行线程的代码。例如:

public class MyThread extends Thread {
  public void run() {
    System.out.println("Hello from MyThread!");
  }
}
public class Main {
  public static void main(String[] args) {
    MyThread thread = new MyThread();
    thread.start(); // 启动线程
  }
}

实现Runnable接口是另一种线程创建方式。我们定义一个实现了Runnable接口的类,并重写run()方法来执行线程的代码。例如:

public class MyRunnable implements Runnable {
  public void run() {
    System.out.println("Hello from MyRunnable!");
  }
}
public class Main {
  public static void main(String[] args) {
    MyRunnable runnable = new MyRunnable();
    Thread thread = new Thread(runnable);
    thread.start(); // 启动线程
  }
}

实现Callable接口并使用FutureTask包装器是第三种线程创建方式。Callable接口类似于Runnable接口,不同之处在于它可以返回结果并抛出异常。FutureTask可以包装一个Callable实现,并且可以在执行时异步获取结果。例如:

public class MyCallable implements Callable
  {
 
  public Integer call() throws Exception {
    System.out.println("Hello from MyCallable!");
    return 123;
  }
}
public class Main {
  public static void main(String[] args) throws Exception {
    MyCallable callable = new MyCallable();
    FutureTask
  futureTask = new FutureTask<>(callable);
 
    Thread thread = new Thread(futureTask);
    thread.start(); // 启动线程
    int result = futureTask.get(); // 获取结果
    System.out.println("Result: " + result);
  }
}

以上是Java线程的三种创建模式,每种方式都有其优缺点,需要根据具体应用情况选择合适的方式。

  
  

评论区