Это код для создания thread_group и выполнения всех потоков параллельно:
boost::thread_group group;
for (int i = 0; i < 15; ++i)
group.create_thread(aFunctionToExecute);
group.join_all();
Этот код будет выполнять все потоки сразу. Я хочу, чтобы они выполняли все, кроме 4 максимум параллельно. Когда on завершено, другой выполняется до тех пор, пока больше не будет выполнено.