如果我有三个运行以下链表的线程:
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
?
非常感谢