guava使用(四)–线程类使用
文章目录
一、简介
这一节介绍guava中线程类的使用。guava中ListenableFuture类(扩展自Future类)和Futures类提供了线程结果的监听、再处理、多线程处理。
二、jdk中线程使用
用于同guava中线程比较,这里以jdk中多线程使用为例。
//创建线程池
ExecutorService es = Executors.newFixedThreadPool(3);
List<String> strList = Lists.newArrayList("one", "two", "three");
//创建多个任务
List<Callable<String>> taskList = new ArrayList<>();
strList.forEach(t ->{
taskList.add(()->t);
});
//执行所有任务
List<Future<String>> futureList = es.invokeAll(taskList);
//输出结果
futureList.forEach(t -> {
try {
System.out.println(t.get()