public class MyTest { private static final ListeningExecutorService service = MoreExecutors.listeningDecorator(newFixedThreadPool(10)); private static final Collection<Future<?>> futures = new LinkedList<>(); public static void main(String[] args) throws IOException { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("0"); list.add("0"); list.add("0"); list.add("0"); for (final String str : list) { ListenableFuture<Integer> explosion = service.submit(() -> { try { if (str.equals("0")) { return 0; } return 1; } catch (Exception e) { } return 1; }); futures.add(explosion); Futures.addCallback(explosion, new FutureCallback<Integer>() { @Override public void onSuccess(Integer num) { if (num == 0) { System.out.println("是0了"); } else { System.out.println("不是0了"); } } @Override public void onFailure(Throwable throwable) { System.out.println("线程异常"); } }, MoreExecutors.directExecutor()); } // 线程等待。 for (Future<?> future : futures) { try { future.get(); System.out.println("线程等待"); } catch (Exception e) { System.out.println("线程等待异常"); } } } }
获取线程返回结果
最新推荐文章于 2024-05-12 03:25:19 发布