Java - 并行化 Gzip

标签 java gzip parallel-processing

我被指派在 Java 7 中并行化 GZip,但我不确定哪个可行。

任务是:

  • 使用给定数量的线程并行化 gzip
  • 每个线程使用一个 1024 KiB 的 block ,使用来自 前一个 block 作为字典。有一个选项可以不使用 字典
  • 从标准输入和标准输出读取

我尝试过的:

  • 我试过使用 GZIPOutputStream,但似乎没有 隔离和并行化 deflate() 的方法,我也无法访问 deflater 改变字典。我尝试扩展 GZIPOutputStream,但它似乎并没有像我想要的那样运行,因为我仍然无法隔离压缩/放气。
  • 我尝试使用启用了换行的 Deflater 和 FilterOutputStream 来 输出压缩字节,但我无法压缩它 以 GZip 格式正确。我这样做是为了让每个线程都有一个压缩器,该压缩器将写入字节数组,然后写入 OutputStream。

我不确定是我的方法有误还是完全采用了错误的方法。任何人都可以指出该项目使用哪些类的正确方向吗?

最佳答案

是的,用字典压缩文件不能并行化,因为一切都取决于一切。也许您的老师要求您并行化文件夹中多个文件的单独 gzip 压缩?这将是并行工作的一个很好的例子。

关于Java - 并行化 Gzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858101/

相关文章:

java - boolean 数组的 getter[][]

java - 如何将apache poi添加到java中?

python - 如何读取包含在 gz 文件中的文件名

java - 如何向压缩的 HttpUrlConnection 写入 post 语句?

C++ 中断 omp 并行

java - 以方法作为参数的 DRY

java - 在 Java 中签名和验证数据给出了错误的结果

google-chrome - Chrome 扩展 : gzip css/js

c++ - 使用 SSE 或 SSE3 在 ushort 数组中添加 uchar 值

r - 在 R 中并行计算时更改内核数