22template <
typename algorithm_t>
23void do_parallel(algorithm_t && worker,
size_t const num_records,
size_t const threads)
26 size_t const records_per_thread = num_records / threads;
28 for (
size_t i = 0; i < threads; ++i)
30 size_t const start = records_per_thread * i;
31 size_t const end = i == (threads - 1) ? num_records : records_per_thread * (i + 1);
32 tasks.emplace_back(
std::async(std::launch::async, worker, start, end));
35 for (
auto && task : tasks)