Aly*_*leh 2 java parallel-processing production java-8 forkjoinpool
我们开发了一个使用Java8并行流的API调用,并且我们获得了非常好的性能,与进行压力测试时的顺序处理相比几乎翻了一番.
我知道这取决于用例,但我将它用于加密操作,所以我认为这是一个很好的用例.
但是,我读了很多鼓励他们非常小心的文章.还有文章讨论它们内部设计不是很好,就像这里一样.
因此:准备并行流生产; 它们被广泛用于生产系统吗?
这个问题邀请"意见"; 但我试着回答以事实为基础.
这些课程并不新鲜!如您所见,它们已经在Java 1.7中引入.换句话说:这些课程现在已存在好几年了; 并在很多地方使用.因此:风险低.
在Java术语中添加了"最近"(请记住2017年遗留Java有多少;以及与其他语言相比,Java的发展速度有多慢).我认为这里的简单答案是:我们还不知道并行流是否会成为Java编程的"基石",或者人们是否会更喜欢其他方式在某些时候通过并行流解决问题地址.
除此之外:其他语言(例如JavaScript)的用户习惯于几乎"每月"地"改变方向"(即框架).这意味着很多流失,但这也意味着"好事"很快得到应用; 喜欢:为什么后期改进的东西?!
我的意思是:当您发现并行流可以帮助您提高性能时; 而当你的团队同意"是的,我们可以处理流() -编写代码的方式" ......然后就往前走.
换句话说:当并行流帮助您的团队/产品"变得更好"时,为什么不尝试利用它?现在,不是12或24个月.
如果溪流"不是那么大的东西"; 那么,也许你必须在将来的某个时候重写一些代码.
长话短说:这是关于平衡潜在风险和潜在收益.你似乎已经取得了一些积极的经验; 所以我认为合理的妥协是:应用流,但以受控的方式.因此,后来的决定"错误转向,摆脱它们"并不会变得太昂贵.