Как синхронизировать «для» счетчика циклов на многопоточном?Как синхронизировать счетчик циклов «for» в многопоточном режиме?
Если эти программы мульти нить
void Func(int n){
for(int i=0; i<n; i++){ //at the same time with other Func()
cout << i <<endl;
}
}
void main(){
std::thread t1(Func(2));
std::thread t2(Func(2));
t1.join();
t2.join();
}
При выполнении Func() параллельно, я хочу синхронизировать «для» счетчик цикла «я».
Например, программа имеет возможность вывода результата
0
1
0
1
, но я хочу, чтобы всегда получать результат
0
0
1
1
Могу ли я это?
Ваша программа имеет возможность распечатывать и другие вещи (например, '00'). Как вы хотите, чтобы счетчик синхронизировался? Вы хотите всегда гарантировать, что сообщения журнала печатаются по порядку? Если да, то зачем вам несколько потоков? – Chad
Это упрощенная программа для запроса вопросов. Моя оригинальная программа имитирует многоагентную систему (Distributed Stochastic Algorithm). В исходной программе я хочу синхронизировать количество проб всех агентов. –