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
转载于:https://my.oschina.net/u/2486137/blog/1574582