Future,帶返回執行結果的執行緒使用方式
阿新 • • 發佈:2022-04-29
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