线程安全删除链表中的节点

时间:2016-05-08 10:19:06

标签: c++ multithreading data-structures linked-list shared-ptr

如果我有三个运行以下链表的线程:

A1-->B1-->C1-->D
A2-->B2-->C2-->D (same D)
A3-->B3-->C3-->D (same D)

这是DTOR

node::~node()
{
    if (next) {
        delete next;
        next= NULL;
    }
}

我还有一个具有linkedListFactory功能的createChain()班级。 createChain()从外部类调用了循环。

使用线程安全删除链表的最简单方法是什么? shared_ptr旁边还有其他解决方案吗?也许要保留vector<node*>中的所有共享节点并仅在删除所有“常规”节点后调用DTOR

非常感谢

0 个答案:

没有答案