Perl 的文档说: 从 Perl 5.8 开始,线程编程已经可以使用一种称为解释器线程的模型,它为每个线程提供一个新的 Perl 解释器
使用ps -Lm <pid>
下面的程序,我可以看到线程并行运行,即它们同时在不同的内核中运行。但即使有 4 个线程(3 个和主线程)也ps aux
只显示一个 Perl 进程。
- 这是否意味着每个线程上都有一个完整的Perl 解释器?
- Perl 线程是否映射到系统线程?
- 如果 2 为真,那么如何在单个进程中拥有多个 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;