Java中StreamparallelStream,前者是单管,后者是多管,运行时间上做一个小对比,直接上代码:

/**
*
* @author zhangy6
* <p>对比Stream、parallelStream</p>
* @date 2017-07-25
*/
public class StreamTest {
public static void main(String[] args) {
String path = "pku_training.utf8";
try {
List<String> list = IOUtil.readFile2List(path, "utf-8"); long start = System.currentTimeMillis();
list.stream().
filter(e -> StringUtils.isNotBlank(e)).
map(e -> getIdiom(e)).
collect(Collectors.toList());
System.out.println("stream : " + (System.currentTimeMillis() - start) + "ms"); start = System.currentTimeMillis();
list.parallelStream().
filter(e -> StringUtils.isNotBlank(e)).
map(e -> getIdiom(e)).
collect(Collectors.toList());
System.out.println("parallelStream : " + (System.currentTimeMillis() - start) + "ms"); } catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} private static List<String> getIdiom(String string) {
String[] array = string.split("\\s+");
List<String> list = Arrays.asList(array); return list.stream().filter(e -> e.length() == 4).collect(Collectors.toList());
}
}

代码是读取一个分词训练语料,大小7.37MB,然后找出其中四个字的单词/成语,对比一下Stream和ParallelStream运行时间(笔记本win10),结果如下:

stream : 317ms
parallelStream : 90ms

多管就是比单管强很多,线程都不用了。

最新文章

  1. JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册
  2. java 追加文件
  3. Masonry的使用
  4. JDBC相关的类介绍
  5. tomcat 设置集群
  6. JQuery多媒体插件jQuery Media Plugin使用详解
  7. hdu 1301
  8. mysql下怎样运行脚本
  9. OC-多线程GCD的使用细节
  10. js字的数目的计算方法(与word计算公式为)
  11. 输入 URL 到页面完成加载过程中的所有发生的事情?
  12. Unity3d的序列帧动画
  13. Java中的函数对象
  14. shell之参数传递
  15. zTree勾选状态的禁用节点不在选中节点里
  16. Android布局理解
  17. 图论分支-Tarjan初步-割点和割边
  18. SPRINT四则运算(第二天)
  19. 【git学习笔记】
  20. Page Object设计模式(项目整体结构)

热门文章

  1. Linux下 编译C++/C以及常用的几种命令(ubuntu)
  2. HDU 2874 Connections between cities(LCA+并查集)
  3. [UOJ300]吉夫特
  4. 【最短路】【Heap-dijkstra】Gym - 101147B - Street
  5. 【指数型母函数】hdu1521 排列组合
  6. 千克与磅之间的转换 Exercise05_05
  7. 使用urlretrieve下载图片
  8. fidder模拟post提交到PHP遇到的问题
  9. UI控件---UIWebView
  10. JS向后台传递json数组对象