Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
8
Одновременное увеличение общей переменной двумя потоками с задержкой
Условие задачи
В программе объявлена глобальная переменная counter1. Два потока создаются, каждый из них перед началом работы ждёт две секунды, а затем выполняет 100 000 инкрементов counter1. После завершения обоих потоков значение counter1 выводится на экран.
static int counter1;
void run()
{
auto threadFunc = []()
{
using namespace std::chrono_literals;
std::this_thread::sleep_for(2000ms);
for (int i = 0; i < 100000; i++)
{
++counter1;
}
};
std::thread th(threadFunc), th2(threadFunc);
th.join();
th2.join();
std::cout << counter1 << std::endl;
}