与顺序流相比,并行流的开销要高得多。协调线程需要花费大量时间。我将默认使用顺序流,并且仅在以下情况下考虑并行流
我要处理大量项目(或者每个项目的处理需要时间并且可以并行化)
我首先遇到性能问题
我尚未在多线程环境中运行该流程(例如:在Web容器中,如果我已经有许多并行处理的请求,则在每个请求中添加额外的并行度层可能会产生多于积极影响的负面影响)
在您的示例中,无论如何,性能都将受到对的同步访问的驱动
System.out.println(),并且使此过程并行不会产生影响,甚至不会产生负面影响。
此外,请记住,并行流并不能神奇地解决所有同步问题。如果过程中使用的谓词和函数使用了共享资源,则必须确保所有内容都是线程安全的。尤其是副作用,如果并行使用,那么您真的要担心。
无论如何,不要猜测!只有度量会告诉您并行性是否值得。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)