linux - unix环境高级编程的多线程死锁例子没看懂,求解释?
天蓬老师
天蓬老师 2017-04-17 16:01:24
[Linux讨论组]

unix环境高级编程第三版323面到325面那个多线程操作哈希表的例子。

我不懂的是为什么最后释放节点的时候,作者先对节点加锁获取其引用次数,次数为1需要删除节点。然后作者后面解释到,需要释放这个锁才能对哈希表加锁,才能删除节点。请问这是为什么?在这种情况下不就是先获得哈希表锁再获得节点锁,和前面的添加节点加锁顺序相反,还有可能造成死锁啊。



提问者更新:

(非常感谢乌合之众兄的回答。这里是我自己看错了,添加节点的时候也是先锁哈希表再锁节点的;为了避免死锁,在释放节点的时候互斥嵌套的时候也要先锁哈希表,再锁节点的。因为书上这么说是对的,只是解释的太模糊了。岁数大了,眼神不好使呀。)

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号