Блокировка std::mutex в C++
Простой взаимный замок - это std::mutex:
поток, захвативший его, блокирует остальных
до unlock.
Захватим мьютекс перед изменением int
и освободим его на каждом пути выполнения:
#include <iostream>
#include <mutex>
#include <thread>
int main() {
int value = 0;
std::mutex mx;
std::thread worker([&]() {
mx.lock();
++value;
mx.unlock();
});
worker.join();
std::cout << value << "\n";
return 0;
}
Один поток под std::mutex увеличивает int с 4 до 5 через lock и unlock. Выведите результат.