Ich habe ein Perl-Skript, das eine Reihe von Unterprozessen ausgibt. Ich hätte gerne irgendeine Art von Funktionalität wie xargs --max-procs=4 --max-args=1
oder make -j 4
, wo Perl eine bestimmte Anzahl von Prozessen laufen lässt, bis es keine Arbeit mehr hat.perl process queue
Es ist einfach zu sagen, vier fork-Prozess und warten auf sie alle zu vervollständigen, und dann vier weitere, aber ich möchte vier oder n Prozesse zur gleichen Zeit ausgeführt werden, Forking einen neuen Prozess sobald einer schließt ab.
Gibt es in Perl einen einfachen Weg, einen solchen Prozesspool zu implementieren?
Was ist der Unterschied zwischen Block und Warteschlange? – srchulo
'Block' wird Ihr Programm warten lassen, bis einige Kindprozesse abgeschlossen sind, damit die nächste Aufgabe beginnen kann. 'queue' bringt die aktuelle Aufgabe in eine Warteschlange und lässt Ihr Programm weiterlaufen. Jobs in der Warteschlange werden asynchron gestartet, wenn andere untergeordnete Prozesse beendet werden. – mob
Ohhh, okay. Danke vielmals! – srchulo