多线程和线程池

本文介绍了一种利用线程池处理list集合中多个任务的方法。通过创建一个可复用的线程池,并使用invokeAll方法批量执行这些任务,从而避免了每次处理都需要创建新线程池的问题。

有这样一个需求:你有一个list集合,需要使用该集合作为参数,调用另一个系统并返回结果后处理它(主要的目的是处理结果)

解决方案:用线程池,不关闭线程池,将多个线程放入一个List集合中,使用invokeAll方法,相当于是将多个线程打包执行,统一返回,这样线程池可以一直不关闭,不用为了一个list开一个线程池,并且多个线程打包调用不会造成和其他用户的多线程冲突(究竟是你的线程还是我的线程)。

ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

cachedThreadPool.invokeAll(List<new exeRuleThread implement Callable<Objec>>);

转载于:https://www.cnblogs.com/javac/p/6964966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值