我正在尝试修改从数据库读取并将结果写入文件的串行程序,这是以阻塞方式完成的,我认为我们可以通过有内存缓冲区并写入文件来提高性能异步的“背景”
我可以想到“工作面试”解决方案,使用线程、共享资源、同步块等......但我确信有更好的方法(是否有一个不错的小“延迟写入”库可以做到为了我?)
是否有任何java.util.concurrent
软件包提供任何帮助?java.nio
? 或者可能是 JMS/ActiveMQ?
PipedOutputStream
/PipedInputStream
作为我的缓冲区的基础呢?
如何在 Java 中实现延迟/后台/缓冲/非阻塞/异步文件写入器?
编辑:
根据建议,并避免关闭此问题(因为我认为根据答案评论和投票仍然相关),这是试图使其更加集中的尝试。(我保留上面的原始问题,因此答案仍将保留在上下文中,因为有一些非常好的答案)
PipedOutputStream
/PipedInputStream
(或PipedReader
/PipedWriter
)和之间的实际区别是什么BlockingQueue
- 并且最好将后者用于异步文件写入?(或者这是苹果与橙子的比较,如果是,我想知道为什么?)