Search code examples
multithreadingmutexsemaphorethread-priority

priority inversion in mutex vs semaphore


Why (and how) mutex can deal with priority inversion and semaphores not?

I read in lots of places that the difference (one of them) between mutex and semaphore is priority inversion, can anyone explain please?


Solution

  • From Wikipedia:

    Since the mutex knows its current owner, it is possible to promote the priority of the owner whenever a higher-priority task starts waiting on the mutex.