2016-10-25 14:19发布
unix环境高级编程第三版323面到325面那个多线程操作哈希表的例子。
我不懂的是为什么最后释放节点的时候,作者先对节点加锁获取其引用次数,次数为1需要删除节点。然后作者后面解释到,需要释放这个锁才能对哈希表加锁,才能删除节点。请问这是为什么?在这种情况下不就是先获得哈希表锁再获得节点锁,和前面的添加节点加锁顺序相反,还有可能造成死锁啊。
添加节点的时候,节点都是新申请的,不存在被其他线程使用的情况,所以不会造成死锁。
最多设置5个标签!
添加节点的时候,节点都是新申请的,不存在被其他线程使用的情况,所以不会造成死锁。
一周热门 更多>