2012-03-07 3 views
2

複数のInputStream(複数のZipEntryの)を安全に取得して、それぞれのスレッドでそれぞれ処理するのが安全かどうかを指定するステートメントは見つかりません。ZipFile InputStreamsはスレッドセーフですか?

これは試しても安全でしょうか?

お勧めですか?

を追加しました

は、私はこの方法で、より良いパフォーマンスを得るかもしれませんか?

答えて

5

読書はOKです。各ストリームには独自の状態が含まれているので、同じファイルを指し示す複数のストリームを同時に開いたり、それらのストリームを同時に読むことができます。

ただし、同時書き込みは間違っています。ファイルに不一致が作成されます。

+0

+1:私は各スレッドで異なるInputStreamを使用します。スレッド間でInputStreamを共有することも問題を引き起こす可能性があります。 –

+0

これをサポートするドキュメントはありますか?各ストリーム(したがってすべてのスレッド)は 'ZipFile'オブジェクトを共有することに注意してください。 ...私は並行して書くことを夢見ることはありません。 – OldCurmudgeon

+0

私はそれを試した...それは働いた...しかし、それはパフォーマンスを向上させませんでした。実際にはパフォーマンスが50%低下しました。 – OldCurmudgeon

0

TrueVFS(後継者TrueZIP)は、ZIPファイルのスレッドを読み書きできます。

+0

複数のスレッドから読み書きするとパフォーマンスが向上しますか? – OldCurmudgeon

関連する問題