Повышение слабого_потока в многопоточной программе для реализации пула ресурсов

Я имею в виду использование boost :: weak_ptr для реализации пула объектов, так что они будут получены, когда никто не использует один из объектов. Однако меня беспокоит то, что это многопоточная среда, и кажется, что существует условие состязания между последним shared_ptr и тем, что объект выходит из области видимости, и новым shared_ptr, создаваемым из weak_ptr. Обычно вы защищаете такие операции блокировкой или чем-то еще; однако весь смысл в том, что вы не знаете, когда shared_ptr выходит из области видимости.

Я что-то неправильно понимаю о boost :: shared_ptr и boost :: weak_ptr? Если нет, есть ли у кого-нибудь хорошие предложения о том, что делать?

Благодарю.

Эндрю

Ответы на вопрос(3)

Ваш ответ на вопрос