Как работает система потоков Perl?
Perl»документация с говорит:Начиная с Perl 5.8, доступно программирование потоков с использованием модели, называемой потоками интерпретатора, которая предоставляет новый интерпретатор Perl для каждого потока.
С помощьюps -Lm
с помощью приведенной ниже программы я вижу, что потоки работают параллельно, то есть они запускаются одновременно в разных ядрах. Но даже когда есть 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;