您当前的位置: 首页 >  linux

DS小龙哥

暂无认证

  • 0浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux系统编程-(pthread)线程通信(互斥锁)

DS小龙哥 发布时间:2022-01-11 22:00:00 ,浏览量:0

这篇文章介绍Linux下线程同步与互斥机制–互斥锁,在多线程并发的时候,都会出现多个消费者取数据的情况,这种时候数据都需要进行保护,比如: 火车票售票系统、汽车票售票系统一样,总票数是固定的,但是购票的终端非常多。

互斥锁就是用来保护某一个资源不能同时被2个或者2个以上的线程使用。

为什么需要加锁? 就是因为多个线程共用进程的资源,要访问的是公共区间时(全局变量),当一个线程访问的时候,需要加上锁以防止另外的线程对它进行访问,以实现资源的独占。在一个时刻只能有一个线程掌握某个互斥锁,拥有上锁状态的线程才能够对共享资源进行操作。若其他线程希望上锁一个已经上锁了的互斥锁,则该线程就会挂起,直到上锁的线程释放掉互斥锁为止。

1. 互斥锁介绍

在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。

Linux系统下定义了一套专门用于线程互斥的mutex函数。

mutex 是一种简单的加锁的方法来控制对共享资源的存取,这个互斥锁只有两种状态(上锁和解锁),可以把互斥锁看作某种意义上的全局变量。

总结: 互斥锁可以保护某个资源同时只能被一个线程所使用。

2. 互斥锁相关的函数
关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.0380s