gpt4 book ai didi

multithreading - 如何使用 Perl 并发处理部分任务?

转载 作者:行者123 更新时间:2023-12-04 21:23:15 26 4
gpt4 key购买 nike

我有一组部分排序的任务,其中对于每个任务,所有在部分顺序中严格位于它之前的任务必须在执行之前执行。我想同时执行不相关(在彼此之前或之后)的任务,以尽量减少总执行时间 - 但在其依赖关系完成之前不启动任务。

这些任务将作为(非 perl)子进程运行。

我应该如何使用 Perl 解决这样的问题?有哪些并发控制设施和数据结构可用?

最佳答案

我会使用数组的散列。对于每个任务,其所有先决条件都将在相应的数组中提及:

$prereq{task1} = [qw/task2 task3 task4/];

我会将已完成的任务保存在不同的哈希中,然后只是
my @prereq = @{ $prereq{$task} };
if (@prereq == grep exists $completed{$_}, @prereq) {
run($task);
}

关于multithreading - 如何使用 Perl 并发处理部分任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267620/

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