一、初识Concurrent第一次看见concurrent的使用是在同事写的一个抽取系统代码里,当时这部分代码没有完成,有许多的问题,另一个同事接手了这部分代码的功能开发,由于他没有多线程开发的经验,所以我就一起帮着分析。最开始看到这个时很烦燥啊,因为自己接触java时间很短,连 ...
一、初识Concurrent
第一次看见concurrent的使用是在同事写的一个抽取系统代码里,当时这部分代码没有完成,有许多的问题,另一个同事接手了这部分代码的功能开发,由于他没有多线程开发的经验,所以我就一起帮着分析。最开始看到这个时很烦燥啊,因为自己接触java时间很短,连synchronized都不知道怎么用呢,突然发现有这么个复杂的东西。当时就只好开始学习吧,毕竟是使用嘛,第一目的就是了解清楚这玩意的各个类与方法都干嘛用的,然后看了看同事的代码大概也就清楚了。感觉这和大部分人一样,能用就行。
下面是一段其中的应用
public class VoiceExtractRunnable implements Runnable { @Override public void run() { // 创建线程池 ExecutorService service = Executors.newCachedThreadPool(); // 声明保存各任务(线程)执行结果的集合 List<Future<VoiceExtractExpertInRuleVO>> futures = new ArrayList<Future<VoiceExtractExpertInRuleVO>>( rules.size()); // 循环提交任务 for (VoiceExtractExpertInRuleVO ruleVO : rules) { ruleVO.setExtractParamVO(vo); futures.add(service.submit(new VoiceRuleCallable(ruleVO))); } for (Future<VoiceExtractExpertInRuleVO> f : futures) { try { VoiceExtractExpertInRuleVO r = f.get(); returnRules.add(r); // 获取任务执行完成后的返回结果 } catch (Exception e) { logger.error("", e); } } // 所有任务都执行完毕后,关闭线程池 service.shutdown(); }}
原标题:学习笔记:java并发编程学习之初识Concurrent
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。