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

2023-12-05

这是一道面试题。

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

我的想法:

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

thanks


A 健壮的互斥体可以用来处理互斥锁的拥有者在持有互斥锁的情况下被终止的情况,这样就不会发生死锁。它们比常规互斥体有更多的开销,并且要求锁定互斥体的所有客户端准备好处理错误代码EOWNERDEAD。这表明前所有者已经死亡,并且接收此错误代码的客户端是新所有者并负责清理任何不一致的状态。

鲁棒互斥体是具有鲁棒属性集的互斥体。它是使用 POSIX.1-2008 标准函数设置的.

更多详细信息和示例代码可以在Linux 手册页pthread_mutexattr_getrobust.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Linux上,如何确保解锁被锁定在死亡/终止的线程中的互斥体? 的相关文章

  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • std::condition_variable::wait_for 和 std::condition_variable::wait_until 有什么区别?

    The 我正在使用的参考 http en cppreference com w cpp thread condition variable对两者的解释如下 wait for 阻塞当前线程 直到条件变量被唤醒或在指定的超时持续时间之后 wai
  • 如何使用 wait() 和 notification() 正确暂停线程

    我想要一个启动线程并提供暂停和继续该线程的方法的类 我的第一个方法是使用标志 只要该值为 true 它就会循环 sleep 方法 就像是 public class Bot private Thread t private boolean i
  • 在网络处理中使用自旋变体

    我编写了一个与网络过滤器挂钩交互的内核模块 网络过滤器挂钩在 Softirq 上下文中运行 我正在访问全局数据结构 哈希表 来自软中断上下文以及进程上下文 进程上下文访问是由于sysctl文件用于修改哈希表的内容 我正在使用 spinloc
  • 除非在后台线程中获取新的引用,否则存在潜在的引用计数问题

    我有一个second https stackoverflow com questions 28898966 prefer property accessor or kvc style for accessing core data prop
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • C# WinForms:使用一个或多个附加线程进行绘图。如何?

    如果我有一张包含各种几何形式 直线 矩形 圆形等 的大图 线程需要花费大量时间来绘制所有内容 但在现实生活中 一栋建筑是由不止一名工人建造的 因此 如果绘图是建筑物而线程是构建者 则绘制速度会快得多 但我想知道怎么做 你能告诉我怎么做吗 有
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 调用许多网络服务的最佳方式?

    我有 30 家子公司 每家都实施了他们的 Web 服务 使用不同的技术 我需要实现一个Web服务来聚合它们 例如 所有子公司的Web服务都有一个名为的Web方法GetUserPoint int nationalCode 我需要实现我的网络服
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内

随机推荐

  • Gradle 工件依赖图命令是什么?

    我在Gradle 文档 To deal with problems due to version conflicts reports with dependency graphs are also very helpful Such rep
  • 如何使用python在PDF文件的所有页面中添加水印?

    我尝试向 PDF 文件的每一页添加水印 我的 PDF 文件有 58 页 但我的输出文件仅包含 PDF 文件的最后一页 这是我的代码 from PyPDF2 import PdfFileReader PdfFileWriter waterma
  • Ivy:强制依赖本地快照

    我有一个项目A 它依赖于项目B 两者都是正在积极开发的内部项目 假设项目 A 的最新版本是 1 1 2 它依赖于项目 B 1 1 1 现在我们正在开发项目 A 1 2 0 它依赖于也在开发中的项目 B 1 2 0
  • 读取 SSIS 脚本组件源中的对象变量值

    是否可以读取SSIS脚本组件源中的对象变量值 我有一个对象类型的变量 其中包含使用 SQL 脚本任务填充的表中的记录 我已经使用了这个脚本任务 并且通过使用下面的代码它可以完美地工作 oleDA Fill dt Dts Variables
  • 如何赋予 CSS 类优先于 id 的优先级?

    我有一个这样的元素 idname border 2px solid black classname border 2px solid gray div class classname it is a test div 我想给予它的 CSS
  • WP7 Pivot 控件中的切换开关?

    有没有什么方法可以控制轻弹动作的阈值以打开 关闭切换开关 以便它不会干扰枢轴控件的导航 抱歉 但我将避免你的问题 无论如何我无法回答 并建议你使用不同的方法 您可以 我假设 使用复选框来轻松地向使用该应用程序的人提供选项 毕竟 切换开关具有
  • 在 Python 中迭代双端队列的时间复杂度是多少?

    迭代的时间复杂度是多少 或者更准确地说 通过 Python 集合库中的双端队列进行每次迭代的时间复杂度是多少 一个例子是这样的 elements deque 1 2 3 4 for element in elements print ele
  • 无法使用 ruby​​ 脚本从亚马逊 s3 删除文件

    我在用AWS SDK 红宝石用于删除保存在我的亚马逊 s3 帐户的存储桶中的文件 但我不明白为什么我能够使用以下代码从 S3 存储桶中删除所需的文件 这是我的代码 require aws sdk v1 require aws sdk ENV
  • 如何删除 io.on('connection') 监听器?

    我有一些用于 socket io 服务器的代码 大致如下 var io require socket io io io server io on connection connectionHandler 这一切都很好 我想知道如何删除该连接
  • 链接边框和下三角形透明

    我找不到我需要的东西 我有这个代码
  • Android - 获取自定义对话框中组件的句柄

    我正在尝试通过单击菜单中的选项来创建自定义对话框 我继续启动一个新活动 其 Intent 指向 customTextMessageDialog I 我能拿到手柄使用 phoneNumber EditText dialog findViewB
  • 如何在 Exoplayer 中添加下一个、上一个、快退和前进的侦听器

    我正在 ExoPlayer 上工作 我想自定义 ExoPlayer 并监听事件下一个 上一个 倒带 前进 以便当用户单击下一个按钮时播放列表中的下一个视频将播放 而使用上一个时将播放播放列表中的上一个视频将播放播放列表等 我正在使用自定义布
  • 有没有办法回答(或忽略)所有 y/n 提示的“y”?

    我有一个 Jupyter 笔记本 里面有很多大变量 有一次我想扔掉所有我已经用完的变量 我使用 reset selective 变量名来清除每个变量 但这些变量有 60 个 当我运行包含所有 60 个提示的块时 它会要求我为每个清除输入 y
  • 使用c#在Word中按名称访问表

    我有一个包含很多表格的文档 我想使用 C 和 Microsoft Office Interop Word 修改这些表 我读到我可以使用 Tables 接口迭代所有表 问题 是否可以为表指定名称 ID 并通过名称访问表 就像 Powerpoi
  • 通过 github API 关闭拉取请求

    根据我们应用程序的设计要求 我们曾经使用 gitlab API 删除 Gitlab 中的合并请求 现在我们正在迁移到 Github 我正在寻找类似的 API 调用来关闭 Github 上的拉取请求 我通读了文档here 但它没有回答我的问题
  • 对数据框的每一行进行排序[重复]

    这个问题在这里已经有答案了 我正在尝试使用这一行对数据框的每一行进行排序 sapply df function x sort x 但是 对列进行排序而不是对行进行排序 例如 这个数据框 5 10 7 1 5 6 3 9 2 4 4 5 1
  • *a, b, c = line.split() 中的星号有什么作用?

    Assume line is Chicago Sun 01 52 什么是 a b c line split 做 特别是 星号的意义是什么 编辑 经过测试 似乎 Chicago Sun and 01 52 都存储在a b and c 星号似乎
  • 一级缓存可以与 ICriteria 或其他 API 一起使用吗?

    In NHibernate使用时您可以轻松地从一级缓存中受益Load or Get方法 但是关于ICriteria HQL Linq to NHibernate and QueryOver 他们也使用一级缓存吗 他们使用它来返回实体 但查询
  • PowerMockito.doReturn 返回 null

    这是我正在测试的课程 public class A public Integer callMethod return someMethod private Integer someMethod Some Code HttpPost http
  • 在Linux上,如何确保解锁被锁定在死亡/终止的线程中的互斥体?

    这是一道面试题 在 Linux 上 如何确保解锁被锁定在死亡 终止的 POSIX 线程中的 POSIX 互斥锁 我的想法 Linux向程序发送kill或终止信号时会自动释放它吗 但是 我找不到有关操作系统如何执行此操作的更多详细信息 tha