同じInputStreamを同時に処理するN個のコンシューマスレッドを生成する必要があります。たとえば、何らかの形で変換し、チェックサムやデジタル署名などを計算します。これらのコンシューマは、データソースとしてInputStreamを受け入れる第三者のライブラリを使用しています。独立したコンシューマでの単一のInputStreamの同時処理
は、だから私は何ができるかである - 「親」ストリームからのデータ
- 読み取りチャンクは、すべての消費者まで
- 待ち時間が全体のチャンクを読み込みますInputStreamのいくつかの実装を作成します
- 次のチャンクを読ん
シンプル見ながら、それはliveloのような様々な問題が上昇する可能性どのコンシューマが死んでも、すべてのInputStreamメソッドを実装し、バリア/ラッチなどを使用してコンシューマ自身のフォーク/ジョインを制御します。
1人のバディーは実装するのが半時間だと私に言いました。
グーグルでは成熟したものを使うのが好きです(グーグルでは結果が得られませんでした。私のgoogle-fuは十分ではありません)か、 "ソース"ストリーム全体を一時ファイルにコピーしないでくださいこれをデータのソースとして使用します。後者の解決法はより信頼性が高いようですが、ギガバイトファイルの作成に終わることがあります(たとえばストリーミングオーディオを処理する場合)。
データをファイルに書き込んで、N個のFileInputStreamを生成できますか? –
@JonLin彼は質問の終わりに向かって言ったように、彼はすることができます。 –