我知道优先级倒置以及何时发生。利用互斥锁的优先级继承和优先级上限协议能力,避免优先级倒置。
我的问题是使用上述协议中的哪一个来避免优先级倒置,或者说何时使用优先级继承以及何时使用优先级上限协议?
我们不能同时使用两个协议来解决优先级倒置
优先级继承协议避免了无限的优先级倒置,但不能避免死锁。另一方面,优先级上限协议可以避免死锁,并将优先级反转限制为仅一个级别,即在给定时间,线程最多只能阻塞一个更高优先级的线程。因此,优先级上限 protcol 比优先级继承协议更复杂,但它的开销更大。因此,在非常安全的关键系统中,必须使用优先级上限,但如果您想保持较小的开销,优先级继承也可能起作用。