互斥锁互斥锁核心概念互斥锁Mutex用于多线程之间对共享资源的互斥访问保证同一时刻只有一个线程能进入临界区执行。作用解决线程并发时的数据混乱、覆盖、计算错误本质一把二值锁0/1原则同一时间只允许一个线程持有锁互斥锁四大函数头文件#include pthread.h1. 初始化互斥锁int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);mutex互斥锁变量地址attr属性一般填NULL返回成功 0失败非 02. 加锁阻塞int pthread_mutex_lock(pthread_mutex_t *mutex);能拿到锁直接上锁继续执行拿不到锁阻塞等待直到锁被释放3. 解锁int pthread_mutex_unlock(pthread_mutex_t *mutex);释放锁唤醒等待该锁的线程4. 销毁锁int pthread_mutex_destroy(pthread_mutex_t *mutex);用完锁必须销毁释放资源使用流程固定模板定义全局互斥锁pthread_mutex_t mutex;初始化pthread_mutex_init(mutex, NULL);访问共享资源前lock访问完共享资源unlock最后销毁pthread_mutex_destroy(mutex);考点⭐互斥锁保证临界区同一时间只有一个线程执行加锁必须成对出现lock ↔ unlock忘记解锁 →死锁程序卡死锁的粒度越小并发效率越高只锁共享资源不锁无关代码互斥锁属于线程级不能用于进程间互斥锁 线程安全的通行证谁拿到锁谁执行临界区没拿到就阻塞等待保证数据不乱。