【发布时间】:2011-11-30 11:28:23
【问题描述】:
我有一个 Perl 脚本,它在验证某个表达式时启动线程。
while ($launcher == 1) {
# do something
push @threads, threads ->create(\&proxy, $parameters);
push @threads, threads ->create(\&ping, $parameters);
push @threads, threads ->create(\&dns, $parameters);
# more threads
foreach (@threads) {
$_->join();
}
}
第一个循环运行良好,但在第二个循环中脚本退出并出现以下错误:
线程已在 launcher.pl 第 290 行加入。 Perl 以活动线程退出: 1 运行和未加入 0 完成和未加入 0 运行和分离
我想我应该清理@threads,但我该怎么做呢?我什至不确定这是否是问题所在。
【问题讨论】:
-
这可能不是您唯一的问题,但这绝对是个问题。第一次通过循环你加入
@threads[0..2]。然后你尝试加入@threads[0..5],其中三个线程已经加入了。
标签: multithreading perl