Java中实现多线程主要有以下几种接口方式:
实现`Runnable`接口
创建一个类实现`Runnable`接口,并重写`run`方法。
创建`Runnable`接口实现类的实例,并将其传递给`Thread`类的构造函数。
调用`Thread`对象的`start`方法启动线程。
```java
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行的代码
}
}
Thread thread = new Thread(new MyRunnable());
thread.start();
继承`Thread`类
创建一个类继承`Thread`类,并重写`run`方法。
创建`Thread`类的子类实例,并调用`start`方法启动线程。
```java
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行的代码
}
}
MyThread myThread = new MyThread();
myThread.start();
实现`Callable`接口
创建一个类实现`Callable`接口,该接口继承自`Runnable`接口并添加了一个返回值。
使用`FutureTask`类将`Callable`对象包装起来。
将`FutureTask`对象传递给`Executor`框架执行。
```java
public class MyCallable implements Callable
@Override
public Integer call() throws Exception {
// 线程执行的代码,并返回结果
return 0;
}
}
ExecutorService executor = Executors.newSingleThreadExecutor();
Future
Integer result = future.get(); // 获取线程执行结果
使用`ExecutorService`框架
创建一个`ExecutorService`实例,通常使用`Executors`工厂类创建。
提交`Callable`或`Runnable`任务给`ExecutorService`执行。
通过`Future`对象获取任务执行结果。
```java
ExecutorService executor = Executors.newFixedThreadPool(2);
Future
future = executor.submit(new MyCallable()); Integer result = future.get(); // 获取线程执行结果
executor.shutdown();
以上是Java中实现多线程的几种常见接口方式。您可以根据具体需求选择合适的方式