gpt4 book ai didi

perl 进程队列

转载 作者:行者123 更新时间:2023-12-04 16:26:32 25 4
gpt4 key购买 nike

我有一个 Perl 脚本,它 fork 了许多子进程。我想要某种功能,例如 xargs --max-procs=4 --max-args=1make -j 4 ,其中 Perl 将保持给定数量的进程运行,直到它耗尽工作。

说 fork 四个进程并等待它们全部完成,然后再 fork 另外四个很容易,但我想保持四个或 n 个进程同时运行,一旦完成就 fork 一个新进程。

Perl 中是否有一种简单的方法来实现这样的进程池?

最佳答案

Forks::Super 可以处理这个要求。

use Forks::Super MAX_PROC => 5, ON_BUSY => [ block | queue ];

调用 fork()可以阻塞直到事件子进程的数量低于 5,或者您可以将其他参数传递给 fork调用和要执行的任务可以排队:
fork { sub => sub { ... task to run in subprocess ... } }

当一个子进程完成时,队列中的另一个作业将启动。

(我是这个模块的作者)。

关于perl 进程队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3424778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com