所以我们有一个共享数组的共享指针。我们有N个线程当前正在使用该shared_array。一些生成器给了我们新的shared_array。我们希望让旧线程使用那个旧的共享数组,并在所有N个第一个thrads超出范围时自动释放它,而我们想要给新线程,它们首次调用它我们的生成器提供的较新的shared_array。是否可以通过提升和如何做到这一点?
答案 0 :(得分:4)
每个线程都可以保存指向数组的本地共享指针。
当他们开始处理数组时,他们只是从提供者那里请求数组。
这样他们就会指向当前处于活动状态的数组。他们将保留该数组直到它们完成,并且当没有更多引用时该数组将被处理掉 当提供新数组时,将在线程再次请求数组时访问它。
答案 1 :(得分:1)
你所描述的是预期使用“MT-safe”(但不是很强的MT-safe)引用计数智能指针,就像提升指针一样。