есть функция
void t(int aa)
{
for(int i=0;i<100;i++){
if(aa==0){
std::cout<<"Поток номер = "<<std::this_thread::get_id()
<<" Отработал итерацию - "<<i<<std::endl;
sleep(1);
}
else{
aa--;
std::cout<<"поток "<<std::this_thread::get_id()
<<" уснул - "<<std::endl;
sleep(5);
}
}
}
суть этой функции в том что потоки спокойно делают свои итерации (допустим потоков штук 10) но в один момент функция t() которую выполняют потоки,видит переменную аа которая лежит в главном потоке функции main() . И допустим аа = 2 Это значит что 2 потока должны заснуть,любые из 10. те кто первые увидят аа делают ее аа--; и засыпают на 5 секунд .
Вопрос вот в чем , как сделать переменную аа видимой для всех потоков и изменяемой для всех потоков?
Просто передавайте аа по ссылке или указателю, а при использовании захватывайте мьютекс
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь написать программу, которая отправляет POST запрос на ЯндексДирект
Как на карте Google Maps выделять область и создавать свои маркеры по аналогии с рисунком? Есть ли где-то документация по поводу этого
Некоторое время использовал фреймворк Netty для создания асинхронного неблокирующего сервераСейчас подумываю перекатываться на c++, есть ли аналоги...