我正在设置一些东西,以“批量”方式将SSH输出到多个服务器.我基本上想要一次维护5个连接,当一个连接打开另一个连接时(遵循一系列服务器IP).
我想知道这样的事情我应该使用fork()吗?如果是这样,我可以使用什么逻辑来确保我一次维持5个孩子?
解决方法
分叉(或穿线)是你想要的,但你应该看一下
CPAN的模块,这些模块将提供你需要的大部分内容,以防止你重新发明轮子并经历你需要做的学习的痛苦.
例如,Parallel::ForkManager看起来就像你想要的那样.
use Parallel::ForkManager; $pm = new Parallel::ForkManager($MAX_PROCESSES); foreach $data (@all_data) { # Forks and returns the pid for the child: my $pid = $pm->start and next; ... do some work with $data in the child process ... $pm->finish; # Terminates the child process }