データベースから読み取り、結果をファイルに書き込むシリアルプログラムを変更しようとしています。これはブロック方法で行われ、メモリバッファーがあり、ファイルが書き込まれることでパフォーマンスが向上すると思います。 「バックグラウンド」は非同期的に
スレッド、共有リソース、同期ブロックなどを使用した「就職の面接」ソリューションを考えることができますが、もっと良い方法があると確信しています(それを実行する素敵な「遅延書き込み」ライブラリがありますか?私のため?)
java.util.concurrent
パッケージのいずれかが助けになりますか?java.nio
?またはおそらくJMS/ActiveMQ?
私のバッファの基礎としてのPipedOutputStream
/はどうですか?PipedInputStream
Javaで遅延/バックグラウンド/バッファリング/非ブロッキング/非同期ファイルライターを実装するにはどうすればよいですか?
編集:
提案に基づいて、そしてこの質問が閉じられるのを避けるために(私はそれが回答のコメントと投票に基づいてまだ関連していると思うので)ここにそれをより焦点を合わせる試みがあります。(私は上記の元の質問を保持しているので、いくつかの非常に良い質問があるので、答えはまだ文脈に残ります)
PipedOutputStream
/PipedInputStream
(またはPipedReader
/PipedWriter
)との実際的な違いは何ですかBlockingQueue
- 非同期ファイルの書き込みには後者を使用するのが望ましいですか?(または、このリンゴとオレンジの比較ですか?もしそうなら、理由を知りたいですか?)