我是编程Perl(或任何一般语言)的新手 我对该语言有基本的了解,并编写了一个小脚本,运行我的进程的多个分叉线程,这是脚本的片段。
use Perl6::Slurp;
use Parallel::ForkManager;
my $pm = Parallel::ForkManager->new(10);
my $time = 100;
alarm("$time");
for my $i (0 .. 100) {
my $pid = $pm->start and next;
job();
$pm->finish;
}
$pm->wait_all_children;
sub job {
print "Function Started On Thread";
}
现在,那不是我的实际代码。但它几乎是没有这个功能的概括 我希望它能在警报结束时结束。
现在我不知道这是不是一个简单的动作,但正如我所说,我对编程一般都是新手。 感谢任何有帮助的人!
答案 0 :(得分:1)
向流程组发送信号。只需将以下内容添加到父级:
local $SIG{ALRM} = {
local $SIG{TERM} = 'IGNORE';
kill TERM => -$$;
die "Timed out\n";
};