java多线程实现callable接口
时间: 2023-10-26 08:16:13 浏览: 69
在中,可以通过实现Callable接口来创建一个带返回值的线程任务。与Runnable接口不同,Callable接口的call()方法可以返回一个结果,而且可以抛出异常。
下面是一个简单的例子:
```java
import java.util.concurrent.Callable;
public class MyCallable implements Callable<String> {
public String call() throws Exception {
// 在这里编写你的多线程代码
return "Hello World";
}
}
```
在上面的代码中,我们实现了Callable接口,并且重写了call()方法。在这个方法中,我们可以编写我们的多线程代码,并且使用return语句返回一个结果。
然后,我们可以在主线程中使用Callable创建一个Future对象,以便在后面获取线程的结果。下面是一个使用Future的例子:
```java
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) throws Exception {
// 创建一个ExecutorService,用于执行Callable任务
ExecutorService executor = Executors.newSingleThreadExecutor();
// 创建一个Callable任务
Callable<String> callable = new MyCallable();
// 提交任务并返回一个Future对象
Future<String> future = executor.submit(callable);
// 等待任务执行完成并获取结果
String result = future.get();
// 输出结果
System.out.println(result);
// 关闭ExecutorService
executor.shutdown();
}
}
```
在上面的代码中,我们首先创建了一个ExecutorService,它用于执行Callable任务。然后,我们创建了一个Callable任务,并将其提交给ExecutorService。这个方法返回一个Future对象,我们可以使用它来等待任务执行完成并获取结果。最后,我们输出结果,并关闭ExecutorService。