嵌入式开发之线程互斥
目录
互斥锁初始化-pthread_mutex_init
申请锁-pthread_mutex_lock
释放锁-pthread_mutex_unlock
同步 VS 互斥
临界资源:一次只允许一个任务(进程、线程)访问的共享资源,不允许多个任务同时访问的。
临界区:访问临界区的代码
互斥机制:mutex互斥锁,任务访问临界资源前申请锁,访问完后释放锁
互斥锁初始化-pthread_mutex_init
#include <pthread_h>
int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutexattr_t *attr);
- 成功返回0,失败返回错误码
- mutex指向要初始化的互斥锁对象
- attr 互斥锁属性,NULL表示缺省属性
申请锁-pthread_mutex_lock
#include <pthread.h>
int pthread_mutex_lock(pthread_mutex_t *mutex);
- 成功时返回0,失败时返回错误码
- mutex指向要初始化的互斥锁对象
- 如果无法获取锁,任务阻塞
释放锁-pthread_mutex_unlock
#include <pthread.h>
int pthread_mutex_