FutureTask的demo
时间: 2024-04-09 15:33:59 浏览: 67
Demo_Android.rar_DEMO
当然可以给你一个FutureTask的简单示例。FutureTask是一个实现了Future接口和Runnable接口的类,它可以用来表示一个异步计算的结果,并且可以通过get()方法获取计算结果。
下面是一个使用FutureTask的示例代码:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class FutureTaskDemo {
public static void main(String[] args) {
// 创建Callable任务
Callable<Integer> callable = () -> {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
return sum;
};
// 创建FutureTask对象
FutureTask<Integer> futureTask = new FutureTask<>(callable);
// 创建线程并启动
Thread thread = new Thread(futureTask);
thread.start();
try {
// 获取计算结果
int result = futureTask.get();
System.out.println("计算结果:" + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们先创建了一个Callable任务,该任务会计算1到100的累加和。然后,我们使用FutureTask将该任务包装起来。接着,我们创建一个线程,并将FutureTask作为线程的任务来执行。最后,通过调用FutureTask的get()方法来获取异步计算的结果。
当代码执行到futureTask.get()时,如果异步计算还未完成,get()方法会阻塞当前线程直到计算完成并返回结果。如果异步计算已经完成,则get()方法会立即返回结果。
希望这个示例能够帮助你理解FutureTask的用法。如果有任何疑问,请随时提问。
阅读全文