Perl's documentation dice: Desde Perl 5.8, programación hilo ha estado disponible usando un modelo llamado hilos intérprete que proporciona un nuevo intérprete Perl para cada hilo¿Cómo funciona el sistema de roscado de Perl?
Usando ps -Lm <pid>
con el siguiente programa puedo ver que los hilos se ejecutan en paralelo , es decir, se están ejecutando al mismo tiempo en diferentes núcleos. Pero incluso cuando hay 4 hilos (3 y el principal), ps aux
muestra solo un proceso de Perl.
- ¿Quiere decir esto que hay en su conjunto Perl intérprete en cada hilo?
- Están hilos de Perl asignan a hilos del sistema?
- Si 2 es cierto, ¿cómo es posible tener múltiples intérpretes Perl en un solo proceso?
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;
http://stackoverflow.com/questions/9973860/use-cases-for-ithreads-interpreter-threads-in-perl-and-rationale-for-using-or – user454322
Sugiero leer [esto] (http://www.perlmonks.org/index.pl?node_id=288022) antes de usar "Perl threads" en cualquier proyecto. – PSIAlt
Además en perl 5.20 notas de la versión: hilos basados en intérpretes ahora son desalentados El "intérprete- Los subprocesos basados en "proporcionados por Perl no son el sistema rápido y liviano para la multitarea que uno podría esperar o esperar. Los hilos se implementan de manera que sean fáciles de usar. Pocas personas saben cómo usarlas correctamente o podrán brindar ayuda. – Rob11311