Concurrency AdaCore/FSF的Ada 2012实现是否支持任意生成任务?

Concurrency AdaCore/FSF的Ada 2012实现是否支持任意生成任务?,concurrency,parallel-processing,ada,Concurrency,Parallel Processing,Ada,TLDR:我是个白痴。事实证明,该库用于与操作系统派生的进程进行接口,而不是与本机Ada任务进行接口。 我最近偶然发现,我想知道它为System.OS_Lib实现的功能现在是否是Ada 2012的默认实现的一部分 我不确定2012年的Ada任务是并行的还是并行的,所以我在这篇文章中对两者都做了标记。Ada至少从1995年起就允许在应用程序中任意位置生成任务。有两种/三种方法: 在声明区域中: Some_任务:Some_任务类型; 其他任务:Soma任务访问:=新的某些任务类型; 在一份声明中:

TLDR:我是个白痴。事实证明,该库用于与操作系统派生的进程进行接口,而不是与本机Ada任务进行接口。

我最近偶然发现,我想知道它为System.OS_Lib实现的功能现在是否是Ada 2012的默认实现的一部分


我不确定2012年的Ada任务是并行的还是并行的,所以我在这篇文章中对两者都做了标记。

Ada至少从1995年起就允许在应用程序中任意位置生成任务。有两种/三种方法:

在声明区域中:

Some_任务:Some_任务类型;
其他任务:Soma任务访问:=新的某些任务类型;
在一份声明中:

Other_Task:=新的某个_Task_类型;

如果spawn manager自95年以来一直受支持,那么它有什么意义?这看起来像是一个半新的项目,我不知道。这可能是一次教育活动。或者它实际上是在做什么,而不是说什么。你问的有点不清楚。。。也许你能解释得更多?Ada可以(并且总是可以)随意创建任务,甚至任务数组——在语言中,不需要库——尽管跨处理器网络分发它们需要一个附件。我对“spawn manager”的阅读表明,如果这些任务产生其他操作系统作业(可能是非Ada的,如grep等),则存在序列化问题(例如,stdin等连接到哪些任务?),并且spawn manager管理来自多个Ada任务的此操作系统交互。所以你是在问Ada任务,还是OS spawn,或者两者都问?我也不太清楚,但spawn Manager似乎又创建了一个Ada任务,该任务在你的其他Ada任务及其派生的OS进程之间协调所有I/O。我可以想象,如果你不这样做,一切都通过一个stdin管道进行路由,可能会出现混乱……我的浏览器不允许我访问该站点(无效证书),因此我无法发表评论。你所说的(OS_Lib)与生成Ada任务无关。这是关于产生额外的操作系统进程的。你想知道什么还不清楚:关于Ada的任务处理设施的一些事情?关于System.OS_Lib生成操作系统作业?还是关于合并它们?