Archivos Unix multihilo en Java
**Descripción general
XZ,
Bzip2 y
Lzip son comunes en Linux. Debido a su estructura de bloques pueden ser comprimidos en varios hilos. La API de Aspose.ZIP proporciona el método setCompressionThreads
para todos ellos para utilizar varios núcleos de CPU en la compresión. Establecerlo en más de uno implica una compresión multi-núcleo; dejarlo en uno - la opción por defecto - conduce a la compresión con un único núcleo de CPU.
Compresión multihilo XZ
Existe el método
setCompressionThreads en XzArchiveSettings
.
El siguiente ejemplo de código muestra cómo comprimir un archivo utilizando la instancia XzArchive.
1try (FileOutputStream xzFile = new FileOutputStream("archive.xz")) {
2 try (FileInputStream source = new FileInputStream("datos.bin")) {
3 XzArchiveSettings settings = new XzArchiveSettings();
4 settings.setCheckType(XzCheckType.Crc32);
5 settings.setCompressionThreads(4);
6 try (XzArchive archive = new XzArchive(settings)) {
7 archive.setSource(fuente);
8 archive.save(xzFile);
9 }
10 }
11} catch (IOException ex) {
12}
Compresión multihilo bzip2
Existe el método
setCompressionThreads en Bzip2SaveOptions
.
El siguiente ejemplo de código muestra cómo comprimir un archivo utilizando la instancia Bzip2Archive.
1try (FileOutputStream bz2File = new FileOutputStream("archive.bz2")) {
2 try (FileInputStream source = new FileInputStream("datos.bin")) {
3 try (Bzip2Archive archive = new Bzip2Archive()) {
4 archive.setSource(fuente);
5 Bzip2SaveOptions options = new Bzip2SaveOptions(9);
6 options.setCompressionThreads(4);
7 archive.save(bz2File, options);
8 }
9 }
10} catch (IOException ex) {
11}
Compresión multihilo Lzip
Existe el método
setCompressionThreads en LzipArchiveSettings
.
El siguiente ejemplo de código muestra cómo comprimir un archivo utilizando la instancia LzipArchive
.
1try (FileOutputStream lzFile = new FileOutputStream("archive.lz")) {
2 try (FileInputStream source = new FileInputStream("datos.bin")) {
3 LzipArchiveSettings settings = new LzipArchiveSettings(16777216);
4 settings.setCompressionThreads(4);
5 try (LzipArchive archive = new LzipArchive(settings)) {
6 archive.setSource(fuente);
7 archive.save(lzFile);
8 }
9 }
10} catch (IOException ex) {
11}
En todos los ejemplos se utilizan cuatro hilos.