"Несколько потоков могут одновременно читать и записывать разные
shared_ptr объекты, даже если эти объекты являются копиями, имеющими общее
владение". (MSDN: Потокобезопасность в стандартной библиотеке C++)
Означает ли это, что изменение объекта Shared_ptr безопасно?
Например, считается ли безопасным следующий код:
Код: Выделить всё
shared_ptr global = make_shared();
...
//In thread 1
shared_ptr local = global;
...
//In thread 2
global = make_shared();
...
Просто чтобы объяснить мою мотивацию. Я хочу иметь общий указатель для хранения моей конфигурации и пул потоков для обработки запросов.
поэтому глобальная — это глобальная конфигурация.
Код: Выделить всё
thread 1Код: Выделить всё
thread 2Если это сработает, я смогу обновить конфигурацию таким образом, не нарушая ее в середине обработки запроса.
Подробнее здесь: https://stackoverflow.com/questions/144 ... ead-safety
Мобильная версия