【Linux】线程同步:互斥锁、读写锁、条件变量、自旋锁、屏障

1、互斥量

1.0 阻塞和死锁

阻塞:被加锁的线程都会被阻塞;
死锁:造成死锁的两种可能
1)如果线程试图对同一个互斥量加锁两次,它自身就会陷入死锁状态;
2)A线程一直占用第一个互斥量,然后试图锁住第二个互斥量时,进入阻塞状态;
B线程一直占用第二个互斥量,然后试图锁住第一个互斥量是,进入阻塞状态。

避免锁死的方法:所有的线程总是先对第一个互斥量加锁,然后对第二个互斥量加锁

1.1 C示例

#include <pthread.h>
#include <stdio.h>
​
pthread_mutex_t mutex;int index = 

猜你喜欢

转载自blog.csdn.net/u010168781/article/details/134364775