Я недавно обнаружил, что Perl разветвляется, и я совершенно влюблен.Но одна вещь касается меня - если я просто разделяю процессы влево и вправо, это, безусловно, вызовет какую-то проблему.Есть ли разумная проверка, которую следует использовать, чтобы убедиться, что мое маленькое приложение не поглощает все ресурсы моей машины?
Возьмите этот пример кода:
foreach my $command (@commands) {
my $pid = fork();
if (!$defined $pid) {
#Fork failed. Do something.
} elsif ($pid == 0) { #This is the child.
system($command);
exit(0)
}
}
while (wait() != -1) {} #wait() will be -1 when the last child exits.
Так что это будет работать нормально, и порождает процесс для обработки каждой команды.Все это будет происходить параллельно, что замечательно, если эти команды полностью независимы.
Что если у меня вдруг будет более 5000 команд для выполнения?Было бы неразумно отключать столько процессов.Так какой тип проверки должен быть реализован и как?
)