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



posted @ 2024-04-09 19:18  王阳开  阅读(71)  评论(0编辑  收藏  举报