1、
#include <pthread.h>
int pthread_mutex_destroy(pthread_mutex_t *mutex);
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);
int pthread_mutex_unlock(pthread_mutex_t *mutex);
int pthread_mutex_timedlock(pthread_mutex_t *restrict mutex, const struct timespec *restrict abs_timeout);
创建互斥锁pthread_mutex_t mtx;
这就定义了一个互斥锁。但是如果想使用这个互斥锁还是不行的,我们还需要对这个互斥锁进行初始化, 使用函数 pthread_mutex_init() 对互斥锁进行初始化操作。mtx 1打开 0锁着的
//第二个参数是 NULL 的话,互斥锁的属性会设置为默认属性
pthread_mutex_init(&mtx, NULL);
两个线程如果我只对A加锁,对B不加锁还是不行
A受限制(访问共享资源)
B不受限制
A B都上锁以后,结果正常
临界区越小越好