You can successfully parallelize many applications using only the constructs in the Parallelizing Simple Loops section. However, some situations call for other parallel patterns. This section describes the support for some of these alternate patterns.
For some loops, the end of the iteration space is not known in advance, or the loop body may add more iterations to do before the loop exits. You can deal with both situations using the template class tbb::parallel_do.