给出java使用FutureTask异步处理的代码示例,不使用 ExecutorService
时间: 2023-08-02 14:38:55 浏览: 97
比较java中Future与FutureTask之间的关系
下面是一个Java使用FutureTask异步处理的示例代码,不使用ExecutorService:
```java
import java.util.concurrent.*;
public class FutureTaskExample {
public static void main(String[] args) throws Exception {
// 创建一个 FutureTask,使用 Callable 实现异步处理
FutureTask<String> futureTask = new FutureTask<>(new Callable<String>() {
@Override
public String call() throws Exception {
// 模拟异步处理
Thread.sleep(1000);
return "Hello, FutureTask!";
}
});
// 创建一个新线程执行 FutureTask
Thread thread = new Thread(futureTask);
thread.start();
// 在主线程中执行其他操作
System.out.println("Do something else while waiting for FutureTask...");
// 阻塞等待 FutureTask 的结果,并打印结果
String result = futureTask.get();
System.out.println(result);
}
}
```
在这个示例中,我们创建了一个 FutureTask 对象,使用 Callable 接口实现异步处理。然后,我们创建了一个新线程,并使用 start 方法执行 FutureTask。在主线程中,我们可以执行其他操作,然后通过调用 FutureTask 的 get 方法来阻塞等待异步处理的结果。最后,我们没有使用 ExecutorService,因此不需要关闭线程池。
阅读全文