我有一个要求,我需要读取文本文件然后转换它并将其写入其他文件。我希望以并行方式执行此操作,例如一个用于读取的线程,一个用于转换,另一个用于写入。
现在要在线程之间共享数据,我需要一些通道,我想为此使用BlockingQueue
,但是如果可以的话,我想探索一些其他(更好的)替代方案。
番石榴有一个EventBus
但不确定这是否适合这个要求。从性能的角度来看,还有哪些其他替代品可供选择,哪一种最佳。
答案 0 :(得分:2)
除非您的转换步骤非常密集,否则这可能是浪费时间。
这样想。你在问什么?
你要的是什么
哪种数据结构最能代表第3步的传入数据流? (提示:这是你开始使用的InputStream!)
前两个步骤增加了什么价值? “转换”线程可以从磁盘读取的速度与通过另一个线程从磁盘读取的速度一样快。在中间添加线程不加速磁盘读取。
时,你会开始考虑添加另一个线程