Java - Распараллеливание Gzip

Мне было поручено распараллеливать GZip в Java 7, и я не уверен, какой из них возможный.

Назначение:

  • Распараллелить gzip с использованием заданного количества потоков
  • Каждый поток принимает блок размером 1024 КиБ, используя последние 32 блока КиБ из предыдущего блока в качестве словаря.Есть возможность использовать без словаря
  • Читать из Stdin и stdout

Что я пробовал:

  • Я пробовал использовать GZIPOutputStream, но, похоже, нет {{1 }} способ изолировать и распараллелить deflate (), а также я не могу получить доступ к deflater для изменения словаря. Я попытался расширить GZIPOutputStream, но, похоже, он действовал не так, как я хотел, так как я все еще не мог изолировать сжатие / дефляция.
  • Я попытался использовать Deflater с включенным переносом и FilterOutputStream для вывода сжатых байтов, но мне не удалось заставить его правильно сжать в формате GZip. Я сделал так, чтобы у каждого потока был компрессор, который будет записывать в массив байтов, а затем записывать в OutputStream.

Я не уверен, ошибаюсь ли я в своих подходах или принимал неверные подходы полностью. Может ли кто-нибудь указать мне правильное направление, в котором классы использовать в этом проекте?

5
задан am3692 22 October 2011 в 07:42
поделиться