Я хочу смоделировать сценарий несколько раз, то есть repCnt = 100. Чтобы ускорить процесс, я хочу использовать несколько потоков, которые работают параллельно, и использовать мьютекс, когда они должны записать результаты в файл.
Их нужно вычесть из общего количества повторений, работая в группах с NUM_THREADS = 4. Записывать часть с мьютексом легко, но я не могу понять, как должен выглядеть основной l oop.
Вот начало:
NUM_THREADS = 4
void simulate(struct argType arg) {
}
int main() {
// ... Some code here ...
vector<thread> vecOfThreads;
for (rep = 0; rep < repCnt; rep++) {
// Here they should work in groups of 4, i.e., rep = 1, 2, 3, 4
// They need to call the simulate(struct argType) function while they are working
// Once a thread is done, it should get the next task from the loop, i.e., rep = 5
}
return 0;
}
Когда я искал пул потоков в C ++, все, что я нашел, было слишком много классов и методов. Должен быть гораздо более быстрый способ делать то, чего я хочу достичь. Может кто-нибудь помочь мне с самым простым и коротким кодом C ++?