线程同步之互斥锁、自旋锁、读写锁以及条件变量

线程同步之互斥锁、自旋锁、读写锁以及条件变量_第1张图片

一、互斥锁

互斥锁保证资源访问的串行
它针对特定进程给临界资源加锁,加锁时其它进程无法访问该临界资源,只能进入睡眠状态
原子性:一系列操作不可被中断的特性

二、自旋锁

效果同互斥量,但申请调用自旋锁资源的进程会反复检查锁变量是否可用,直到资源被释放为止
自旋锁避免了进程/线程的上下文开销,但不适合单核CPU

三、读写锁

读写锁是一种特殊的自旋锁,允许同时读取,但不允许同时写入
它适合多读少写的场景

四、条件变量

条件变量允许线程睡眠,直到满足特定条件时唤醒

你可能感兴趣的:(操作系统)