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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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