时间:2022-12-06 01:58
linux中的内核锁有:1.互斥锁,在原子操作API的基础上实现的信号量行为;2.自旋锁,为SMP系统设计;
linux中的内核锁有以下两种
1.互斥锁
linux中互斥锁是在原子操作API的基础上实现的信号量行为,其访问的规则是同一时间只能有一个任务持有互斥锁,且只有这个任务可以对互斥锁进行解锁,常用于防止两个线程在同一时刻访问相同的共享资源,互斥锁不能进行递归锁定或解锁。
2.自旋锁
自旋锁是为SMP系统设计的,可以在多处理器情况下保护临界区,且自旋锁保护的临界区代码执行时不能进入睡眠状态;被自旋锁保护的临界区代码执行时,内核不能被抢占。