Sobes.tech
Назад к вопросам
Junior — Middle
81

Насколько уверенно ты разбираешься в концепциях и практике многопоточного программирования?

Ответ от нейросети

sobes.tech AI

Я знаком с основными концепциями многопоточного программирования, такими как создание и управление потоками, синхронизация с помощью мьютексов и условных переменных, предотвращение гонок данных и дедлоков. В C/C++ использую стандартную библиотеку <thread> для создания потоков и std::mutex для защиты общих ресурсов.

Пример простого многопоточного кода на C++:

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

std::mutex mtx;

void print_message(const std::string& msg) {
    std::lock_guard<std::mutex> lock(mtx);
    std::cout << msg << std::endl;
}

int main() {
    std::thread t1(print_message, "Привет из потока 1");
    std::thread t2(print_message, "Привет из потока 2");

    t1.join();
    t2.join();

    return 0;
}

Этот пример демонстрирует создание двух потоков, которые выводят сообщения, при этом доступ к std::cout защищён мьютексом для предотвращения смешивания вывода.