我知道在Linux中,mutex是通过底层的futex来实现的,并且futex使用了compare-and-swap机制。通常情况下,为了获取锁,用户空间线程不需要进行系统调用,因为锁是在用户空间解决的。
那么当有很多线程同时尝试锁定一个mutex时会发生什么呢?当线程的优先级不同时,是否会出现系统调用以便内核决定授予哪个线程mutex呢?我认为是这样。
我知道在Linux中,mutex是通过底层的futex来实现的,并且futex使用了compare-and-swap机制。通常情况下,为了获取锁,用户空间线程不需要进行系统调用,因为锁是在用户空间解决的。
那么当有很多线程同时尝试锁定一个mutex时会发生什么呢?当线程的优先级不同时,是否会出现系统调用以便内核决定授予哪个线程mutex呢?我认为是这样。