callable 在线程池有返回时调用样例
List<String> lists = new ArrayList<>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
ExecutorService executorService = Executors.newCachedThreadPool();
List<FutureTask<String>> futureTasks = new ArrayList<>();
//模拟处理数据
for(String temp : lists){
MyCallableThread myCallableThread = new MyCallableThread (temp);
FutureTask<String> futureTask = new FutureTask<String>(myCallableThread );
futureTasks.add(futureTask);
//无需返回
// executorService.execute(futureTask);
//需要返回
executorService.submit(futureTask);
}
executorService.shutdown();
//返回结果
for(int i=0; i<futureTasks.size(); i++){
System.out.println("线程返回:"+futureTasks.get(i).get());
}