Java 创建多线程的四种方式
- 继承 Thread 类
- 实现 Runnable 接口
- 实现 Callable 接口
- 利用线程池
今天咱们来重点聊聊第三种实现方式,Callable 接口。
Callable接口
Callable 接口是从 JDK1.5 以后提供的一种线程创造方法,是多线程包 java.util.concurrent 包中的,用于多线程环境。
创建线程
Callable 接口包只有一个抽象方法 call()
但是发现 Thread 类的构造方法没有可以传 Callable 接口的构造器
这就体现 Java 面向接口编程的魅力所在,在 java.util.concurrent 包下有一个 FutureTask 类,它实现了 Runnable接口,同时构造方法可以传入一个 Callable 接口。所以创建一个 Callable 线程应该这样写:
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class CallableDemo {
public static void main(String[] args) {
FutureTask futureTask = new FutureTask<Integer>(new MyThread());
Thread thread = new Thread(futureTask,"Callable");