当前位置: 首页 > news >正文

详细介绍互斥锁

互斥锁(Mutex,全称Mutual Exclusion)是多线程同步的基础机制,核心作用是保证同一时间只有一个线程能进入临界区,避免共享资源的并发读写冲突,是解决数据竞争问题的核心工具。

一、核心作用

通过“加锁-解锁”的原子操作,实现临界区的互斥访问

  • 临界区:访问共享资源(如全局变量、共享内存)的代码段;
  • 互斥性:一个线程持有锁时,其他线程尝试加锁会被阻塞,直到锁被释放。
二、关键特性
  1. 原子性:加锁( lock )和解锁( unlock )操作是不可分割的,不会被线程调度器打断;
  2. 唯一性:同一时间只有一个线程能持有锁;
  3. 阻塞性:未获取到锁的线程会进入阻塞状态(而非轮询),降低CPU资源消耗;
  4. 可重入性(部分互斥锁):支持同一线程多次加锁(需对应次数解锁),避免“线程自己锁死自己”。
三、POSIX互斥锁(C语言)的核心函数

以 pthread_mutex_t 为例(Linux下常用):

函数功能
pthread_mutex_init初始化互斥锁,参数指定锁的属性(如是否可重入、进程间共享)
pthread_mutex_lock尝试获取锁:
- 锁空闲:立即获取并返回;
- 锁被占用:阻塞当前线程,直到锁被释放
pthread_mutex_trylock尝试获取锁:
- 锁空闲:获取并返回0;
- 锁被占用:直接返回错误(不阻塞)
pthread_mutex_unlock释放锁:
- 唤醒一个阻塞在该锁上的线程;
- 仅能由持有锁的线程调用
pthread_mutex_destroy销毁互斥锁,释放资源(需确保锁已被释放)
四、典型使用流程(保护共享变量)
#include<pthread.h>#include<stdio.h>pthread_mutex_tmutex;// 互斥锁intshared_var=0;// 共享变量void*thread_func(void*arg){for(inti=0;i<10000;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(无锁时可能小于20000)pthread_mutex_destroy(&mutex);// 销毁锁return0;}
五、常见互斥锁类型(按属性)
锁类型特点
普通锁(默认)不可重入,同一线程多次加锁会死锁。
可重入锁同一线程可多次加锁,需对应次数解锁;适合递归/嵌套场景。
进程间共享锁锁存储在共享内存中,支持跨进程线程互斥;默认仅限同进程。

互斥锁和条件变量通常配合使用

  • 互斥锁:保护共享资源的读写;
  • 条件变量:实现线程的等待-通知逻辑;
  • 例如生产者-消费者模型中,互斥锁保护队列的读写,条件变量让消费者等待“队列非空”、生产者等待“队列不满”。
http://www.jsqmd.com/news/313239/

相关文章:

  • 2026年天津财产分割律所联系电话推荐:津门专业服务榜单
  • 2026年隔膜泵十大品牌推荐:国产与国际厂商全景对比
  • 窑炉温度场测温监控系统多少钱,铭耀机电产品价格合理吗?
  • 2026年尼康相机存储卡推荐:影像创作趋势排名,涵盖商业摄影与vlog场景
  • 基于PLC的温室远程监控系统,西门子s71200(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • MCGS昆仑通态液位PID控制仿真视频,可以单独进行手自动控制,模拟现场设备运行情况,模拟液位...
  • 基于MCGS嵌入式的饮料灌装生产流水线组态仿真(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于西门子1200+博图Wincc组态(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年杭州营销推广公司推荐:五大标杆服务商综合实力排名揭晓
  • 2026年马鞍山质量好的抖音短视频运营品牌厂家排行榜
  • 基于PLC的饮料罐装生产线控制系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年天津离婚房产律师联系电话推荐:权威榜单与联系指南
  • 2026年 浙江装修公司推荐排行榜,家庭装修/别墅装修/办公装修,现代轻奢风与中古风设计实力派精选
  • 2026年索尼相机存储卡推荐:户外与专业场景评测,解决兼容性与稳定性痛点
  • 2026国内最新密封胶生产厂家top5推荐!优质密封胶品牌权威榜单发布,防水性能与质量双优助力工程建设
  • 2026年福州营销推广公司权威评测:基于实战效果的五家头部企业深度解析
  • 2026年双金属温度计厂家推荐:江苏雷泰自动化仪表股份有限公司,wwss411温度计/玻璃温度计/wwss401温度计/wwss型双金属温度计厂家精选
  • 2026年天津遗嘱继承律师联系电话推荐:专业团队权威榜单
  • 2026年索尼相机存储卡推荐:户外与专业场景评测,解决兼容性与数据安全痛点
  • 2026年福州营销推广公司推荐:技术能力与成本效益深度评测,解决转型与增长核心痛点
  • P6KE9.1CA双向 TVS瞬态抑制二极管:峰值脉冲功率600W,9.1V精准钳位
  • EAST 口径文档自动化生成:破解 SQL 过滤条件解析难题,实现 20 倍效率提升
  • 2026年天津遗嘱继承律师联系电话推荐:专业团队服务指南
  • 2026年静噪木门厂家推荐排行榜:静噪入户门、静噪铝木门、静音木门,专业隔音与匠心工艺的静谧生活之选
  • 2026年东莞营销推广公司推荐:基于生产与线上场景痛点深度评测与排名
  • 2026年福州营销推广公司推荐与排名:基于10大核心指标解析
  • 2026年潜水搅拌机厂推荐,蓝奥环保专业产品性价比超高
  • 【Android毕设全套源码+文档】基于android的农作物病虫害防治科普系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 2026年黑龙江哈尔滨玻璃钢雕塑厂家实力榜:玻璃钢动物雕塑、玻璃钢卡通雕塑、玻璃钢景观雕塑、玻璃钢户外雕塑、玻璃钢室内雕塑、雕塑与一体化泵站领域五家企业凭品质与适配性出圈
  • 【Android毕设全套源码+文档】基于android的公司内部固定资产借用管理平台设计与实现(丰富项目+远程调试+讲解+定制)