当前位置:首页 > Java技术 > java8 Stream多线程并行数据处理

java8 Stream多线程并行数据处理

Stream多线程并行数据处理


将一个顺序执行的流转变成一个并发的流只要调用 parallel()方法
parallel()和sequential()可以调用多次。

/**
 * 将当前流转为并行流
 */
S parallel();
/**
 * 将当前流转为顺序流
 */
S sequential();

并行流

//.parallelStream()
List<Integer>  integerList= new ArrayList<>();
List<String>  stringList= Collections.synchronizedList(new ArrayList<>());
int sec = 999999;
for(int i = 0; i<sec; i++) {
     
	integerList.add(new Random().nextInt(sec));
}
// 并行流将integerList转成stringList
integerList.parallelStream().forEach(i -> stringList.add(i.toString()));

并行流有线程安全问题,因此流中有线程不安全的集合(new ArrayList<>())进行添加/删除操作时要加Collections.synchronizedList(target)修饰。

作者:海里鲸随浪而起
来源链接:https://blog.csdn.net/weixin_40043897/article/details/84137538

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/67970.html

分享给朋友: