FutureTask是Future的一种实现方式.
private final int count;
public Counter(int count) {
this.count = count;
}
public void get() throws InterruptedException {
// 假设执行一些耗时的操作
Thread.sleep(3000);
System.out.println("counter:" + count);
}
long start = System.currentTimeMillis();
FutureTask<Counter> f = new FutureTask<Counter>(new Callable<Counter>() {
@Override
public Counter call() throws Exception {
System.out.println("==================");
return new Counter(1000);
}
});
f.run();
if (f.isDone()) {
System.out.println("done.time-consuming:"
+ (System.currentTimeMillis() - start) + "ms");
f.get().get();
}
控制台:
==================
done.time-consuming:1001ms
counter:1000