Perl のドキュメントには次 のように書かれています。
以下のプログラムを使用ps -Lm <pid>
すると、スレッドが並行して実行されていることがわかります。つまり、スレッドは異なるコアで同時に実行されています。しかし、4 つのスレッド (3 つとメイン) がある場合でも、ps aux
Perl プロセスは 1 つしか表示されません。
- これは、各スレッドにPerl インタープリター全体があるということですか?
- Perl スレッドはシステム スレッドにマップされていますか?
- 2 が真の場合、1 つのプロセス内で複数の 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;