2012-03-07 2 views
2

복수의 InputStream (복수 ZipEntry의 것)을 얻고 자체 스레드에서 각각 처리하는 것이 안전한지 여부를 지정하는 설명을 찾을 수 없습니다.ZipFile InputStreams는 안전합니까?

시도하는 것이 안전할까요?

적합할까요?

추가

나는 이런 식으로 더 나은 성능을 얻을 수 있는가?

답변

5

읽고 있어야합니다. 각 스트림에는 자체 상태가 포함되어 있으므로 동일한 파일을 가리키고 동시에 읽을 수있는 여러 스트림을 열 수 있습니다.

그러나 동시 쓰기가 잘못되었습니다. 파일에 불일치가 생깁니다.

+0

+1 : 각 스레드마다 다른 InputStream을 사용합니다. 스레드간에 InputStream을 공유하면 문제가 발생할 수 있습니다. –

+0

이것을 지원할 문서가 있습니까? 각 스트림 (따라서 모든 스레드)은'ZipFile' 객체를 공유한다는 것을 기억하십시오. ... 나는 평행하게 글을 쓰려고하지 않을 것이다. – OldCurmudgeon

+0

시도해 보았습니다 ... 효과가 있었지만 성능이 향상되지 않았습니다. 실제로 성능이 50 % 감소했습니다. – OldCurmudgeon

0

TrueVFS (후속자 TrueZIP)은 ZIP 파일 스레 이브 스를 읽고 쓸 수 있습니다.

+0

여러 스레드에서 읽고 쓰는 것이 더 나은 성능을 얻었습니까? – OldCurmudgeon