2011-10-06 56 views
1

所以我们有一个共享指针指向共享数组。我们现在有N个线程正在使用该shared_array。一些发电机给了我们新的shared_array。我们希望让旧线程使用旧的共享数组,并且在所有N个第一个thrads超出范围时自动释放它,而我们想要给予新线程,这些线程首次调用由我们的生成器提供的新的shared_array。是否有可能与提高和如何做到这一点?如何将对象共享指针指向其他线程占用的位置?

回答

4

每个线程可以容纳一个指向该数组的本地共享指针。

当他们开始在数组上工作时,他们只是向提供者请求数组。

这样他们将指向当前活动的数组。他们将保存该数组,直到他们完成,并且该数组将在没有更多引用时被丢弃。
当提供了一个新数组时,它将在线程再次请求数组时访问。

1

你所描述的是预期使用“MT-安全”(但不是强大的MT-安全)引用计数的智能指针,像增强的指针。