for i in 1..it loop
for x in 1..A loop
for y in 1..B
--tab(x,y):=...
end loop;
end loop;
for x in 1..A loop
for y in 1..B
--tab(x,y):=...
end loop;
end loop;
end loop;
在这个循环中有一些计算。我打算做的是让这两个内部'循环同时工作。来自循环1的一个元素,然后来自循环2的一个元素元素或稍微不对称的“对称”。但通常我希望它看起来像这样:第一次迭代,两次内部'循环同时工作,所有操作完成,迭代完成。第二次迭代相同等等。我的问题是:我能用ENTRY和ACCEPT语句来做吗?或者这需要更多的东西?如果你可以指出我正确的解决方案,因为我已经看到很多例子,但没有一个适合我的问题。
答案 0 :(得分:0)
如果两个内部循环真的不共享任何数据,你可以这样做:
task First;
task Second;
task body First is
...
begin
for i in 1 .. it loop
for x in 1 .. A loop
for y in 1 .. B loop
...
end loop;
end loop;
end loop;
end First;
task body Second is
...
begin
for i in 1 .. it loop
for x in 1 .. A loop
for y in 1 .. B loop
...
end loop;
end loop;
end loop;
end Second;
答案 1 :(得分:0)
您可能希望将任务量限制为系统支持的核心数量。在计算pi时看到这个例子: https://github.com/AdaDoom3/OldStuff/blob/master/time_pi.adb