我被指派在 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/