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ď č. 1Na 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
}