/ / Aby Perl našiel „hľadanú“ funkciu multithreaded - multithreading, perl

Make Perl nájsť "wanted" funkciu multithreaded - multithreading, perl

Mám nasledujúci kód:

find(&jpegCompress, @search_paths);

sub jpegCompress()
{
#do processing
}

V súčasnosti prechádza jednotlivými súbormi jeden po druhomv sérii, čo je pomerne pomalé. Existuje vlastne funkcia jpegCompress, aby vytvorila vlákno (ak je počet vlákien <maxThreads) a rýchlo sa vrátila k funkcii find?

odpovede:

2 pre odpoveď č. 1

Na Paralelné :: ForkManager modul umožňuje jednoduché paralelné spracovanie. Príklad:

use Parallel::ForkManager;

$pm = new Parallel::ForkManager($MAX_PROCESSES);

foreach $file (@jpeg_files) {
# Forks and returns the pid for the child:
my $pid = $pm->start and next;

jpegCompress($file);

$pm->finish; # Terminates the child process
}