在linux上,如何确保解锁锁定在死亡终止的线程中的互斥锁?

在linux上,如何确保解锁锁定在死亡终止的线程中的互斥锁?,第1张

概述这是一个面试问题. 在linux上,如何确保解锁被锁定在死机/终止的POSIX线程中的POSIX互斥锁? 我的想法: Linux会在向程序发送终止或终止信号时自动释放它吗?但是,我找不到有关 *** 作系统如何执行此 *** 作的更多详细信息? 谢谢 可以使用强大的互斥锁来处理互斥锁的所有者在保持互斥锁时被终止的情况,从而不会发生死锁.它们比常规互斥锁具有更多开销,并且要求锁定互斥锁的所有客户端都准备好处理错误代 这是一个面试问题.

在linux上,如何确保解锁被锁定在死机/终止的POSIX线程中的POSIX互斥锁?

我的想法:

Linux会在向程序发送终止或终止信号时自动释放它吗?但是,我找不到有关 *** 作系统如何执行此 *** 作的更多详细信息?

谢谢

解决方法 可以使用强大的互斥锁来处理互斥锁的所有者在保持互斥锁时被终止的情况,从而不会发生死锁.它们比常规互斥锁具有更多开销,并且要求锁定互斥锁的所有客户端都准备好处理错误代码EOWNERDEAD.这表明前所有者已经死亡,并且接收此错误代码的客户端是新的所有者,并负责清除任何不一致的状态.

强健的互斥锁是具有健壮属性集的互斥锁.在linux上,可以使用pthread_mutexattr_setrobust_np(& attr,PTHREAD_MUTEX_ROBUST_NP)或使用POSIX标准函数pthread_mutexattr_setrobust(&attr,PTHREAD_MUTEX_ROBUST)设置(如果您有glibc 2.12或更高版本)(此功能在POSIX.1-2008中标准化).

总结

以上是内存溢出为你收集整理的在linux上,如何确保解锁锁定在死亡/终止的线程中的互斥锁?全部内容,希望文章能够帮你解决在linux上,如何确保解锁锁定在死亡/终止的线程中的互斥锁?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1028801.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存