Как работает система потоков Perl?
Документация Perl говорит: Since Perl 5.8, thread programming has been available using a model called interpreter threads which provides a new Perl interpreter for each thread
С помощьюps -Lm <pid>
с помощью приведенной ниже программы я вижу, что потоки работают параллельно, то есть они запускаются одновременно в разных ядрах. Но даже когда есть 4 темы (3 и основные)ps aux
показывает только один процесс 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;