我被分配负责在Java 7中并行化GZip,但我不确定哪种方法是可行的。
任务如下:
- 使用给定数量的线程并行化gzip
- 每个线程取一个1024 KiB块,使用上一个块的最后32 KiB块作为字典。有一个选项可以不使用字典
- 从Stdin读取并输出到stdout
我的尝试:
- 我尝试使用GZIPOutputStream,但似乎没有办法隔离和并行化deflate()操作,也无法访问deflater以更改字典。我尝试继承GZIPOutputStream,但它似乎不像我想要的那样运作,因为我仍然无法隔离压缩/deflate操作。
- 我尝试使用启用wrap的Deflater和FilterOutputStream输出压缩字节,但我无法正确地将其压缩为GZip格式。我使每个线程都有一个压缩器,它将写入一个字节数组,然后再将其写入OutputStream。
我不确定我的方法是错误的还是完全错了。有人能指出我应该为这个项目使用哪些类吗?
GZIPOutputStream
。因为你说那个类已经没有并行化了。 - Sean Owen