Общий мьютекс std::shared_mutex в C++
Запись и чтение различает std::shared_mutex: эксклюзивный
захват для записи и совместный lock_shared
для чтения.
Поток прочитает число под shared-замком и выведет его:
#include <iostream>
#include <shared_mutex>
#include <thread>
int main() {
int data = 9;
std::shared_mutex mx;
std::thread reader([&]() {
mx.lock_shared();
std::cout << data << "\n";
mx.unlock_shared();
});
reader.join();
return 0;
}
Запишите int под lock в main, затем поток читает его через lock_shared и unlock_shared.