你的位置:首页 > 软件开发 > Java > 学习笔记:java并发编程学习之初识Concurrent

学习笔记:java并发编程学习之初识Concurrent

发布时间:2015-03-12 19:00:11
一、初识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 (#换成@)。