Como funciona o sistema de threads do Perl?
Documentação do Perl diz:Desde o Perl 5.8, a programação de thread está disponível usando um modelo chamado threads de intérprete que fornece um novo interpretador Perl para cada thread
Usandops -Lm <pid>
com o programa abaixo, posso ver que os threads são executados em paralelo, ou seja, eles estão sendo executados ao mesmo tempo em núcleos diferentes. Mas mesmo quando há 4 threads (3 e o principal)ps aux
mostra apenas um processo Perl.
use threads;
$thr = threads->new(\&sub1);
$thr2 = threads->new(\&sub1);
$thr3 = threads->new(\&sub1);
sub sub1 {
$i = 0;
while(true){
$i = int(rand(10)) + $i;
}
}
$thr->join;