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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.