Eu tenho o seguinte código:
find(&jpegCompress, @search_paths);
sub jpegCompress()
{
#do processing
}
Atualmente, ele percorre cada arquivo um por umem série, o que é bastante lento. Existe alguma maneira de ter a função jpegCompress criar um thread (se a contagem de threads é <maxThreads) e retornar para a função find rapidamente?
Respostas:
2 para resposta № 1o Paralelo :: ForkManager módulo fornece processamento paralelo simples. Exemplo:
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
}