Назад к задачам
Junior — Senior
8

Одновременное увеличение общей переменной двумя потоками с задержкой

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В программе объявлена глобальная переменная 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;
}