Std :: shared_ptr. Безопасность потокаC++

Программы на C++. Форум разработчиков
Anonymous
Std :: shared_ptr. Безопасность потока

Сообщение Anonymous »

Я прочитал, что < /p>

"Несколько потоков могут одновременно читать и писать разные объекты
shared_ptr, даже если объекты являются копиями, которые делятся
собственность. " (MSDN: безопасность потока в стандартной библиотеке C ++) < /p>
< /blockquote>
Это означает, что изменение объекта shared_ptr безопасно?

для Экземпляр, это следующий код, который считается безопасным: < /p>

Код: Выделить всё

shared_ptr global = make_shared();
...

//In thread 1
shared_ptr local = global;
...

//In thread 2
global = make_shared();
...
Могу ли я быть уверенным в этом случае, что поток 1 локальный будет иметь исходное значение Global или новое значение, которое назначено поток 2, но в любом случае это будет Иметь действительный chared_ptr в myclass? Я хочу иметь общий указатель, чтобы удержать мою конфигурацию, и у меня есть пул потоков для обработки запросов.

SO Global < /code> - глобальная конфигурация.

Код: Выделить всё

thread 1< /code> принимает текущую конфигурацию, когда она начинает обрабатывать запрос.

thread 2
обновляет конфигурацию. (Примените только к будущим запросам)>

Подробнее здесь: https://stackoverflow.com/questions/144 ... ead-safety

Вернуться в «C++»