public class FutureCallable {
/**
* @param args
*/
public static void main(String[] args) {
List<Future<String>> futures = new ArrayList<Future<String>>();
ExecutorService executorService = Executors.newCachedThreadPool();
System.out.println("开始添加缓存。。。");
for (int i = 0; i < 10; i++) {
futures.add(executorService.submit(new Callable<String>() {
@Override
public String call() throws Exception {
// 模拟真实事务的处理过程,这个过程是非常耗时的。
Thread.sleep(5000);
return "缓存添加成功... ";
}
}));
}
for (Future<String> future : futures) {
// 判断资源是不是已经准备完毕,准备完毕直接获取。
if (!future.isDone()) {
System.out.println("等待结果。。。。");
}
try {
System.out.println(future.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
executorService.shutdown();
}
}
转载于:https://my.oschina.net/v512345/blog/918601