Общий захват std::shared_lock в C++
Совместный захват сам снимает std::shared_lock: объект автоматически снимает
lock_shared с std::shared_mutex
при выходе из области видимости.
Создадим shared_lock внутри потока-читателя:
#include <iostream>
#include <mutex>
#include <shared_mutex>
#include <thread>
int main() {
int value = 5;
std::shared_mutex mx;
std::thread reader([&]() {
std::shared_lock<std::shared_mutex> lock(mx);
std::cout << value << "\n";
});
reader.join();
return 0;
}
Два потока читают int под std::shared_lock<std::shared_mutex>. Выведите значение из каждого.