您的位置首页百科问答

Mutex和信号量的区别

Mutex和信号量的区别

的有关信息介绍如下:

Mutex和信号量的区别

mutex的设计目的是"持有后快速释放",也就是说如果一个竞争者在获取失败后,会spin几个循环后再尝试,如果仍然失败,则进入睡眠,这相当于semaphore获取失败后直接睡眠,多了一个spin过程,所以如果每个mutex在持有后又很快释放,那么就不存在CPU的唤醒过程。这显然比semaphore快很多。具体参考https://github.com/torvalds/linux/blob/master/kernel/locking/mutex.c