详细介绍互斥锁
互斥锁Mutex全称Mutual Exclusion是多线程同步的基础机制核心作用是保证同一时间只有一个线程能进入临界区避免共享资源的并发读写冲突是解决数据竞争问题的核心工具。一、核心作用通过“加锁-解锁”的原子操作实现临界区的互斥访问临界区访问共享资源如全局变量、共享内存的代码段互斥性一个线程持有锁时其他线程尝试加锁会被阻塞直到锁被释放。二、关键特性原子性加锁 lock 和解锁 unlock 操作是不可分割的不会被线程调度器打断唯一性同一时间只有一个线程能持有锁阻塞性未获取到锁的线程会进入阻塞状态而非轮询降低CPU资源消耗可重入性部分互斥锁支持同一线程多次加锁需对应次数解锁避免“线程自己锁死自己”。三、POSIX互斥锁C语言的核心函数以 pthread_mutex_t 为例Linux下常用函数功能pthread_mutex_init初始化互斥锁参数指定锁的属性如是否可重入、进程间共享pthread_mutex_lock尝试获取锁- 锁空闲立即获取并返回- 锁被占用阻塞当前线程直到锁被释放pthread_mutex_trylock尝试获取锁- 锁空闲获取并返回0- 锁被占用直接返回错误不阻塞pthread_mutex_unlock释放锁- 唤醒一个阻塞在该锁上的线程- 仅能由持有锁的线程调用pthread_mutex_destroy销毁互斥锁释放资源需确保锁已被释放四、典型使用流程保护共享变量#includepthread.h#includestdio.hpthread_mutex_tmutex;// 互斥锁intshared_var0;// 共享变量void*thread_func(void*arg){for(inti0;i10000;i){// 加锁进入临界区pthread_mutex_lock(mutex);shared_var;// 操作共享变量// 解锁离开临界区pthread_mutex_unlock(mutex);}returnNULL;}intmain(){pthread_mutex_init(mutex,NULL);// 初始化锁pthread_tt1,t2;pthread_create(t1,NULL,thread_func,NULL);pthread_create(t2,NULL,thread_func,NULL);pthread_join(t1,NULL);pthread_join(t2,NULL);printf(shared_var最终值%d\n,shared_var);// 正确输出20000无锁时可能小于20000pthread_mutex_destroy(mutex);// 销毁锁return0;}五、常见互斥锁类型按属性锁类型特点普通锁默认不可重入同一线程多次加锁会死锁。可重入锁同一线程可多次加锁需对应次数解锁适合递归/嵌套场景。进程间共享锁锁存储在共享内存中支持跨进程线程互斥默认仅限同进程。互斥锁和条件变量通常配合使用互斥锁保护共享资源的读写条件变量实现线程的等待-通知逻辑例如生产者-消费者模型中互斥锁保护队列的读写条件变量让消费者等待“队列非空”、生产者等待“队列不满”。

相关新闻

从春晚AI基建看教育行业智能化未来:你的课堂,准备好进化了吗?

从春晚AI基建看教育行业智能化未来:你的课堂,准备好进化了吗?

刚刚,一则行业新闻引发科技界与教育界的共同关注:2026年总台春晚宣布将AI确立为全链路技术基础设施,并与火山引擎、豆包达成独家合作。这并非简单的技术展示或互动点缀,而是一次深刻的“系统迁移”——国家级舞台的核心&#xff0…

2026/7/7 6:22:00 阅读更多 →
创客匠人深度观察:知识社区的自组织革命——AI智能体如何催化用户共创与价值共生

创客匠人深度观察:知识社区的自组织革命——AI智能体如何催化用户共创与价值共生

在知识变现的演进轨迹中,一个被长期低估的维度正悄然崛起:社区。当行业焦点仍集中于内容生产、流量转化与IP包装时,真正持久的知识服务生态,往往诞生于用户自发形成的“价值共生网络”。创客匠人通过对数百个知识项目的长期追踪发…

2026/7/3 8:17:27 阅读更多 →
春晚“换基”给知识创业者的启示:构建自己的AI时代“数字地基”

春晚“换基”给知识创业者的启示:构建自己的AI时代“数字地基”

2026年总台春晚的一则官宣,在科技界投下了一枚“重磅信号弹”:AI将作为全链路技术基础设施,支撑起这场国民级盛会。携手火山引擎与豆包,春晚此次的“技术底座”迁移,其意义远超过引入几项炫酷特效或互动环节。它郑重宣…

2026/7/5 5:03:05 阅读更多 →

最新新闻

ComfyUI整合包部署指南:从环境检查到KREA2模型实战

ComfyUI整合包部署指南:从环境检查到KREA2模型实战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这类工具最值得先看的不是功能列表,而是能不能在普通环境里稳定跑起来。ComfyUI 290集 KREA2模型整合包,加上萝…

2026/7/7 18:48:33 阅读更多 →
28-主流MCP服务器实战

28-主流MCP服务器实战

28 主流MCP服务器实战——6大工具让你的AI如虎添翼 一、前言 理论懂了,配置会了,现在是真刀真枪的时刻。本文将带你逐一配置和使用6大主流MCP Server,覆盖数据库操作、网页抓取、安全审计、代码执行、文件管理和GitHub集成的完整开发场景。 每个Server我都会给出: 安装命…

2026/7/7 18:46:32 阅读更多 →
Openprinter打印机:可维修、低成本、多格式,还能按需自定义!

Openprinter打印机:可维修、低成本、多格式,还能按需自定义!

Openprinter打印机介绍及导航Openprinter是一款可维修、紧凑且耐用的打印机,专为长久使用而设计。页面提供了相关导航,包括预购、技术规格、常见问题解答、团队、媒体资料包、宣言等内容,还有英文和法文版本选择,以及联系我们的入…

2026/7/7 18:44:31 阅读更多 →
tcas-cli实战案例:在云原生环境中的应用与部署

tcas-cli实战案例:在云原生环境中的应用与部署

tcas-cli实战案例:在云原生环境中的应用与部署 【免费下载链接】tcas-cli the user client of the trust cluster attestation server 项目地址: https://gitcode.com/openeuler/tcas-cli 前往项目官网免费下载:https://ar.openeuler.org/ar/ 什…

2026/7/7 18:44:31 阅读更多 →
数据库视图章节博客笔记完整文案(可发布博客,包含视图VS数据表:创建/更新/删除对比)

数据库视图章节博客笔记完整文案(可发布博客,包含视图VS数据表:创建/更新/删除对比)

一、视图基础概念视图(View)是虚拟数据表,本身不存储真实数据,仅保存查询语句;数据全部来源于一张或多张物理数据表,访问视图等价于执行预设的查询SQL。二、视图与物理表:创建、更新、删除详细对…

2026/7/7 18:44:31 阅读更多 →
统计相同的噪声与 π,压缩性为何天差地别?揭秘两种随机性背后的数学联系

统计相同的噪声与 π,压缩性为何天差地别?揭秘两种随机性背后的数学联系

捡起搁置一旁的谜题2026 年 7 月 2 日探讨数学领域问题,上一篇文章结尾留谜题,现再拿出。想象两个各含一百万个数字的文件,一为纯粹噪声如掷百万次十面骰子记录结果,二是 π 的前一百万个数字。从统计学家视角统计数字频率&#x…

2026/7/7 18:42:31 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻