Archives Unix multithread en Java

Aperçu

Les archives XZ, Bzip2 et Lzip sont courantes sous Linux. En raison de leur structure en blocs, ils peuvent être compressés dans plusieurs threads. L’API Aspose.ZIP fournit la méthode setCompressionThreads pour chacun d’entre eux afin d’utiliser plusieurs cœurs de CPU pour la compression. Le fait de la définir à plus d’un entraîne une compression multi-cœur ; le fait de la laisser à un seul - l’option par défaut - entraîne une compression avec un seul cœur de CPU.

Compression multithread XZ

Il existe une méthode setCompressionThreads dans XzArchiveSettings. L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance XzArchive.

 1try (FileOutputStream xzFile = new FileOutputStream("archive.xz")) {
 2    try (FileInputStream source = new FileInputStream("data.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(source) ;
 8            archive.save(xzFile) ;
 9        }
10    }
11} catch (IOException ex) {
12}

Compression multithread Bzip2

Il existe une méthode setCompressionThreads dans Bzip2SaveOptions. L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance Bzip2Archive.

 1try (FileOutputStream bz2File = new FileOutputStream("archive.bz2")) {
 2    try (FileInputStream source = new FileInputStream("data.bin")) {
 3        try (Bzip2Archive archive = new Bzip2Archive()) {
 4            archive.setSource(source) ;
 5            Bzip2SaveOptions options = new Bzip2SaveOptions(9) ;
 6            options.setCompressionThreads(4) ;
 7            archive.save(bz2File, options) ;
 8        }
 9    }
10} catch (IOException ex) {
11}

Compression multithread de Lzip

Il existe une méthode setCompressionThreads dans LzipArchiveSettings. L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance LzipArchive.

 1try (FileOutputStream lzFile = new FileOutputStream("archive.lz")) {
 2    try (FileInputStream source = new FileInputStream("data.bin")) {
 3        LzipArchiveSettings settings = new LzipArchiveSettings(16777216) ;
 4        settings.setCompressionThreads(4) ;
 5        try (LzipArchive archive = new LzipArchive(settings)) {
 6            archive.setSource(source) ;
 7            archive.save(lzFile) ;
 8        }
 9    }
10} catch (IOException ex) {
11}

Quatre threads sont utilisés dans tous les échantillons.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.