我正在考虑使用boost :: weak_ptr来实现一个对象池,这样当没有人使用其中一个对象时它们就会被收获.但我担心的是,它是一个多线程环境,似乎最后一个shared_ptr与一个超出范围的对象和一个从weak_ptr构造的新shared_ptr之间存在竞争条件.通常情况下,您可以通过锁定或其他方式保护此类操作; 但是,这里的重点是你不知道shared_ptr何时可能超出范围.
我是否误解了关于boost :: shared_ptr和boost :: weak_ptr的事情?如果没有,是否有人对如何做有任何好的建议?
谢谢.
安德鲁