如何在Perl中管理多个子进程?

And*_*ewR 6 perl

我有一个Perl程序,需要在后台同时运行大约六个程序,并等待它们全部完成后再继续.同样非常重要的是可以捕获每个的退出状态.

在Perl中有这个常见的习惯用法吗?我目前正在考虑使用线程.

fri*_*edo 8

不要使用线程.线程很糟糕.正确的方法是fork多个过程并wait完成它们.如果您使用waitwaitpid,则可以使用相关流程的退出状态$?.

请参阅fork,waitwaitpid的perldocs ,以及 SO线程中的示例.

如果您只需要管理一个不超过一定大小的子进程池,请查看优秀的Parallel :: ForkManager.