Back to questions
Junior — Middle
82
Насколько уверенно ты разбираешься в концепциях и практике многопоточного программирования?
Answer from AI
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 защищён мьютексом для предотвращения смешивания вывода.