spinlock、mutex lock 应用场景
spinlock、mutex lock 应用场景
linux内核同步机制spinlock、mutex lock,分别用在什么场景
mutex lock 是睡眠锁,在等待锁时进程进入睡眠状态,在锁被释放后,内核唤醒等待的进程运行;
spinlock 是不睡眠,一直轮询等待;
使用spinlock,临界区资源运行在原子(中断)上下文,或者在进程上下文,不能睡眠;
使用mutex lock,临界区运行在进程上下文并可以睡眠;
简单来说就是:
spinlock 用在当前进程不可进入休眠状态(当前进程不可发生进程调度) 的场景;
mutex lock用在允许休眠(允许发生调度)的场景;
再简单的说:
spinlock:不允许进程进入休眠
mutex lock:允许进程进入休眠
written by wang_yangkai@163.com