Wie funktioniert Perls Threading-System?
Perls Dokumentation sagt:Seit Perl 5.8 ist die Thread-Programmierung mit einem Modell namens Interpreter-Threads möglich, das für jeden Thread einen neuen Perl-Interpreter bereitstellt
Verwendenps -Lm <pid>
Mit dem Programm unten kann ich sehen, dass Threads parallel ausgeführt werden, d. h., sie werden gleichzeitig in verschiedenen Kernen ausgeführt. Aber auch wenn es 4 Threads gibt (3 und der Haupt)ps aux
zeigt nur einen Perl-Prozess.
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;