这与我之前的问题有关:D concurrent writing to buffer
假设你有一段代码,由两个连续的代码块A和B组成,其中B依赖于A。这在编程中非常常见。A和B都包含一个循环,其中每次迭代都可以并行运行:
double[] array = [ ... ]; // has N elements
// A
for (int i = 0; i < N; i++)
{
job1(array[i]); // new task
}
// wait for all job1's to be done
// B
for (int i = 0; i < N; i++)
{
job2(array[i]); // new task
}
只有在 A 完成后才能执行 B。我该如何等待 A 的所有任务完成后再执行 B?
iota
函数,因为它基本上做了同样的事情。然而,这个名称实际上与它实际执行的操作完全没有关系。我不知道为什么会选择这个名称用于C++。许多人不喜欢这个名字,因为它真的没有什么意义,但是它和C++保持一致,并且很容易记住。 - Jonathan M Davis