Linux线程同步之互斥量加锁解锁pthread_mutex_init、pthread_mutex_destroy、pthread_mutex_lock、 pthread_mutex_unlock

目录

1.  什么是互斥锁

2、什么是共享资源

3、与互斥锁相关的API

(1)创建互斥锁

(2)pthread_mutex_init()____初始化互斥锁 

(3)pthread_mutex_destroy()___销毁互斥锁

(4)pthread_mutex_lock()___加锁

(5)pthread_mutex_unlock()___解锁

        举例:如何创建一个互斥锁代码实现

        举例:互斥锁限制共享资源的访问

(6)什么情况会造成死锁


1.  什么是互斥锁

        互斥量也称为互斥锁,对共享资源进行锁定,保证同一时刻只能有一个线程去操作。

注意: 互斥锁是多个线程一起去抢,抢到锁的线程先执行,没有抢到锁的线程需要等待,等互斥锁使用完释放后,其它等待的线程再去抢这个锁。

2、什么是共享资源

在加锁与解锁中间的代码,叫做共享资源。

3、与互斥锁相关的API

(1)创建互斥锁

pthread_mutex_t mutex;    //此创建的互斥锁为全局变量

(2)pthread_mutex_init()____初始化互斥锁 

#include <pthread.h>
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);

pthread_mutex_t *restrict mutex:           锁的地址
const pthread_mutexattr_t *restrict attr:  锁的属性,默认写NULL

// 返回:若成功返回0,否则返回错误编号

(3)pthread_mutex_destroy()___销毁互斥锁

#include <pthread.h>
int pthread_mutex_destroy(pthread_mutex_t *mutex);

pthread_mutex_t *mutex:      锁的地址,是一个指针

// 返回:若成功返回0,否则返回错误编号

(4)pthread_mutex_lock()___加锁

#include <pthread.h>
int pthread_mutex_lock(pthread_mutex_t *mutex);

pthread_mutex_t *mutex:      锁的地址,是一个指针
// 返回:若成功返回0,否则返回错误编号

(5)pthread_mutex_un

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值