Sobes.tech
Junior — Middle
127

Koje osnovne mehanizme za upravljanje višestrukim nitima poznaješ?

Компаније где су питане
Samsung Research CenterSamsung Research Center
Стрим Лабс
КасперскийКасперский

Одговор од АИ

sobes.tech АИ

Основные механизмы управления многопоточностью в C/C++ включают:

  • Мьютексы (mutexes) — для взаимного исключения доступа к общим ресурсам.
  • Условные переменные (condition variables) — для синхронизации потоков, ожидания определённых условий.
  • Семафоры (semaphores) — для ограничения количества потоков, одновременно работающих с ресурсом.
  • Атомарные операции (atomic operations) — для безопасного изменения переменных без блокировок.
  • Потоки (std::thread) — создание и управление потоками.

Пример использования мьютекса:

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int counter = 0;

void increment() {
    for (int i = 0; i < 1000; ++i) {
        std::lock_guard<std::mutex> lock(mtx);
        ++counter;
    }
}

int main() {
    std::thread t1(increment);
    std::thread t2(increment);
    t1.join();
    t2.join();
    std::cout << "Counter: " << counter << std::endl;
    return 0;
}