1.互斥锁
互斥锁 互斥量 pthread_mutex_t 互斥锁有种类
只允许一个线程获得锁
pthread_mutex_lock 去获得锁,阻塞
线程进入睡眠 自动让出CPU
2、读写锁 pthread_rwlock_t
写锁 独占锁 排它锁
读锁 共享锁
当读的频率高于写的频率时,用读写锁能够提高运行效率
如果是读锁,允许有多个线程同时上读锁
如果是写锁,则允许一个线程
3、自旋锁: pthread_spinlock_t
自旋的意思:当获取一个已被其他线程上锁的自旋锁时
这个线程不会进入到睡眠(不会让出CPU)
一直都在尝试加锁,直到能够上锁为止
读写锁和互斥锁的区别:
互斥锁:用于保证任何时刻只能有一个线程对内存进行操作
读写锁:读操作时,可以多个线程同时进行,写操作只能有一个进行,且写操作优先于读操作