我在AnyEvent::Utils::fork_call中遇到问题。我正在使用fork_call,然后做一些工作,之后我应该结束我的fork_call,并开始新的并行任务。
我尝试过:
fork_call {
# very important work
# start new parallel task
if (my $pid = fork) {
# other important and very long work
}
} sub {
# never reached this, while parallel task working
}
我认为任何事件fork_call都在等待所有子进程完成工作。
那么如何避免这个问题呢?也许我应该摆脱父进程?
欢迎任何建议。
谢谢。
最佳答案
我不知道这是否满足您的需求,但是您可以在第一个回调中运行下一个fork_call。这样的事情似乎起作用:
fork_call {
# Important work
} sub {
fork_call {
# other important work
} sub {
warn "done!";
}
};
因为第二个fork_call在第一个回调中使用,所以这意味着它会在完成“重要工作”之后 fork 并开始。
关于linux - 通过perl,linux和任何事件在派生进程中启动并行任务的明智方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16652502/