话不多说,直接贴代码,简单的令人发指。
两种方式:一种不带返回结果,一种带返回结果。
public class lambdaThread {
public static void main(String[] args) {
List<Callable<Integer>> taskList = new ArrayList<>();
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 10; i++) {
//无返回结果
// cachedThreadPool.execute(() -> service1(new Object()));
//带有返回结果
Callable<Integer> task = () -> service2(new Object());
taskList.add(task);
}
try {
List<Future<Integer>> resultList = cachedThreadPool.invokeAll(taskList);
for (Future<Integer> e : resultList) {
System.out.println(e.get());
}
} catch (Exception e) {
}
}
public static void service1(Object o) {
}
public static int service2(Object o) {
return 1;
}
}
end!