public static void main(String[] args) throws ExecutionException, InterruptedException { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); CountDownLatch cancelDownLatch = new CountDownLatch(list.size()); AtomicInteger successNum = new AtomicInteger(0); AtomicInteger failNum = new AtomicInteger(0); ConcurrentLinkedQueue<Future<String>> linkedQueue = new ConcurrentLinkedQueue<>(); ThreadFactory threadFactory = new ThreadFactoryBuilder() .setNameFormat("coupon-dispatch-handler" + System.currentTimeMillis() + "%d") .setDaemon(true) .build(); ExecutorService executor = Executors.newFixedThreadPool(list.size(), threadFactory); for (String param : list) { linkedQueue.add(executor.submit( new Ca
线程池和返回值线程
最新推荐文章于 2024-07-12 13:58:45 发布
该博客探讨了如何在Java中使用线程池执行任务,并处理返回值。通过创建固定大小的线程池,使用`CountDownLatch`和`AtomicInteger`跟踪成功和失败的任务。任务以`Callable`实现,将结果存储在`ConcurrentLinkedQueue`中。根据成功和失败的任务数,将结果分类到`ConcurrentHashMap`中,以便进一步处理。
摘要由CSDN通过智能技术生成