happen-before 关系会影响优先级倒置吗?
Does happen-before relationship impact priority inversion?
我想知道 volatile
变量或 finally
块释放锁之类的 happen-before 关系是否与 优先级反转 有关系?我知道这些强加了编译器无法重新排序指令的先行关系。它是否也完全影响优先级反转,或者它们是不同的概念?谁能举个例子让我更好地理解这一点?
不同的概念。 "Priority inversion" 的想法是,如果某个高优先级线程 P 被阻塞,等待低优先级线程 L 做某事,那么 OS 暂时提高 L 的优先级将是有利的至少与 P.
的优先级一样高
"Happens Before" 是 Java 语言规范中的一项保证,可帮助我们推断一个线程所做的内存更新是否以及何时对其他线程可见。
我想知道 volatile
变量或 finally
块释放锁之类的 happen-before 关系是否与 优先级反转 有关系?我知道这些强加了编译器无法重新排序指令的先行关系。它是否也完全影响优先级反转,或者它们是不同的概念?谁能举个例子让我更好地理解这一点?
不同的概念。 "Priority inversion" 的想法是,如果某个高优先级线程 P 被阻塞,等待低优先级线程 L 做某事,那么 OS 暂时提高 L 的优先级将是有利的至少与 P.
的优先级一样高"Happens Before" 是 Java 语言规范中的一项保证,可帮助我们推断一个线程所做的内存更新是否以及何时对其他线程可见。