《Linux Robust锁》

news/2025/9/26 15:17:01/文章来源:https://www.cnblogs.com/zhuangquan/p/19113543

1.Robust锁

  Robust锁(健壮锁)是POSIX线程库提供的一种特殊互斥锁,专门设计用于处理持有锁的进程或线程意外终止的情况,核心目的是解决因锁持有者崩溃导致的死锁问题。

 

2.使用场景

  多进程共享内存的时候,某个进程持有锁后崩溃。导致锁无法释放,一直阻塞其他进程获取资源。

 

初始化Robust

#include <pthread.h>pthread_mutexattr_t attr;
pthread_mutex_t mutex;// 设置锁为进程共享和Robust属性
pthread_mutexattr_init(&attr);
pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);
pthread_mutex_init(&mutex, &attr);

 

使用robust锁

void* thread_func(void* arg) {int ret = pthread_mutex_lock(&mutex);if (ret == EOWNERDEAD) {printf("锁持有者崩溃,正在恢复...\n");if (pthread_mutex_consistent(&mutex) != 0) {perror("恢复锁失败");pthread_mutex_unlock(&mutex);return NULL;}printf("锁已恢复\n");} else if (ret != 0) {perror("获取锁失败");return NULL;}// 临界区操作printf("获取锁成功,执行任务...\n");pthread_mutex_unlock(&mutex);return NULL;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:Agent智能体+DeepSeek全教程:零基础到精通,一键生成可视化报表!

实用指南:Agent智能体+DeepSeek全教程:零基础到精通,一键生成可视化报表!2025-09-26 15:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-…

Manim实现气泡特效

本文将介绍如何使用Manim框架实现一个简单而实用的气泡特效,该特效可用于多种场景,如背景装饰、数据可视化过渡等。 1. 实现原理 气泡特效的核心在于BubbleEffect类,它继承自Manim的Animation类,通过重写关键方法来…

石家庄商标设计小黄人seo

#停止原有工程 ps -ef | grep demo | grep -v grep | awk {print $2} | xargs kill#删除原有工程 rm -rf /opt/app/demo.jar#解压压缩包指定文件&#xff0c;并存入指定路径 #tar -zxf 压缩包 -C 解压到的路径 压缩包中指定文件名 tar -zxf /opt/app/demo.tgz -C /opt/app .…

完整教程:决策树(Decision Tree)

完整教程:决策树(Decision Tree)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

C# Inno Setup

1.安装 inno Setup 2.参考博客 Inno Setup编译器巨详细使用教程-CSDN博客

CF2139虚拟游记

前言 CF2139 \(Div.2\) 难度。 由于刚上大学,开学有很多活动,连参加 vp 的时间都挤不出来。 A.Maple and Multiplication 题面 共 \(t\) 组数据,每组数据: 给定两个数 \(a,b\) ,你可以进行任意次操作:选择一个整…

新方向 - MKT

新方向 1 国防科技大学 语义 2 美团 毛一年 机器人研究院 120m 200-300米 无人机基本参数 老版本 新版本2.4kg (1)视觉卫星图定位 (2)动态重新规划路径 (3)夜间场景 多视角相机的夜间视觉导航下视觉 3…

网站 框架wordpress 换页面

十一章&#xff1a;Java 集合 一、集合框架的概述 1、集合&#xff1a;就像一个容器&#xff0c;可以动态的把多个对象的引用放入容器中。简称 Java 容器 ​ 说明&#xff1a;此时的存储&#xff0c;主要指的是内存层面的存储&#xff0c;不涉及到持续化的存储&#xff08;.t…

用h5做简易网站代码wordpress视频弹窗

diannao1xiejiandeMacBook-Air ~ % su Password: su: Sorry输入 sudo passwd 命令重置密码即可。

融合多元定位技术,帮助应用破解精准定位难题

从查阅天气到记录运动轨迹,从打车到路径规划等,移动终端已深入人们日常生活的方方面面,看似简单的操作背后,都依赖于精准的定位技术。对于应用开发者,位置数据的实时性与准确性直接决定用户体验。当前主流定位技术…

PP-OCRv5 C++ 基准测试工具:打造高性能OCR评测标杆 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

自定义中间件进入管道中执行队列的流程

自定义中间件进入管道中执行队列的流程 1. 自定义中间件类的标准写法 public class CustomLoggingMiddleware {private readonly RequestDelegate _next;// 1. 构造函数必须包含 RequestDelegate next 参数public Cust…

网站推广的常用途径有哪些网站ftp需要关闭

一、集成测试和系统测试的区别 &#xff08;一&#xff09;测试的目的 • 集成测试&#xff1a;主要目的是验证各个模块组合在一起后&#xff0c;它们之间的接口和交互是否正确&#xff0c;是否能够按照设计要求协同工作&#xff0c;以确保系统的稳定性和可靠性&#xff0c;重…

做一个回收网站怎么做免费网站建

当人用眼睛看事物的时候&#xff0c;会感觉到近处的东西是比远处的东西要大一些的&#xff0c;通俗的说&#xff0c;这就是透视。 总的来说。透视变换是将3D的世界转换到2D图像上的一种手段&#xff0c;人的视觉系统和摄像头视觉系统也是基于这一工作原理。 对透视变化的研究&a…

ps做产品的网站怎么做免费的产品图片网站

大家好&#xff0c;今天来聊聊论文降重隐藏字符怎么识别&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 论文降重隐藏字符的识别方法 一、引言 在论文降重过程中&#xff…

翻斗幼儿园历险记-CTF-WP

翻斗幼儿园历险记 一、搭建: docker-compose up -d 运行那个docker-compose.yml文件即可打开127.0.0.1:32777就运行好了2、打法 文件上传前端过滤,bp抓包改后缀即可盲猜一波,上传的目录是/uploads下面 哥斯拉连上马…

.net8+winform+Antdui 制作 LOL 小助手

.net8+winform+Antdui 制作 LOL 小助手 .net8+winform+Antdui 制作 LOL 小助手 一、事件起因 二、筹备工作 三、查看效果 四、后期拓展想法 一、事件起因 本人 lol 菜鸡一枚,最近天天玩排位模式,有时候自己分路有优势…

深入解析:【Git】Git 简介及基本操作

深入解析:【Git】Git 简介及基本操作pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

hutool主要内容list

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅 Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,too…

做图赚钱的网站有哪些中国能源建设集团有限公司是央企

QDomDocument类代表了一个XML文件 QDomDocument类代表整个的XML文件。概念上讲&#xff1a;它是文档树的根节点&#xff0c;并提供了文档数据的基本访问方法。由于元素、文本节点、注释、指令执行等等不可能脱离一个文档的上下文&#xff0c;所以文档类也包含了需要用来创建这些…