/ / Make Perl encontrar função “procurada” multithread - multithreading, perl

Faça o Perl encontrar a função “desejada” multithread - multithreading, perl

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 № 1

o 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
}