首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧批多线程ItemWriter

弹簧批多线程ItemWriter
EN

Stack Overflow用户
提问于 2016-09-16 01:13:52
回答 1查看 2K关注 0票数 0

我对Spring批处理框架非常陌生。

我目前正在与读者和作家一起写一批。

读取器从Db读取,而写入器则写入平面文件。记录的数量为100万。写文件需要很长时间,我想在这方面有所改进。

在作者中实现多线程以便write()方法并行运行的最佳方式是什么?

注意:在@BeforeStep@AfterStep回调中,我正在编写文件的页眉和页脚。write()方法将记录写入文件。

编辑:

我发现,写到文件并不需要太多的时间,但我们的内部方法之一,做某种形式的解密需要500毫秒左右的1条记录。我们有100万这样的记录。

我可以通过在多个线程中进行解密来提高性能吗?从现在开始,我无法理解如何改进。

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 02:31:08

这并不是春季的具体问题。通常情况下,人们所做的就是实现某种流。因为您不阅读整个查询,然后编写所有内容,而是一个接一个地读取一些小数据,然后将每个比特传递给作者,这样它就可以在您完成阅读之前开始编写了。这样做更快,而且还可以使您不再使用那么多内存。例如,如果您有10 of的数据要读写,则可以将其拆分为10 of的查询,而不是读取整个10 of的数据。你应该在溪流上读读。但是,对同一文件的并行写入不会带来任何好处,也不会降低性能。你也应该小心不要启动太多的线程,这同样会降低性能,除非你的线程真的很便宜,否则我建议不要制作超过2个线程,因为一些人已经提到,大多数应用程序的性能都是I/O绑定的,没有办法解决这个问题,只有通过缓冲/流/缓存而不是阻塞线程,或者在应用程序中可以做的任何其他事情来减轻效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39522486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档