Java 是否在关系影响优先级反转之前发生?

Java 是否在关系影响优先级反转之前发生?,java,multithreading,concurrency,happens-before,priority-inversion,Java,Multithreading,Concurrency,Happens Before,Priority Inversion,我想知道在诸如volatilevariable或finally块释放锁等关系发生之前,是否会发生优先级反转?我理解这些规则会产生一种先发生后发生的关系,编译器无法对指令进行重新排序。它是否也会影响优先级反转,或者它们是独立的概念?有人能给我举个例子让我更好地理解这一点吗?单独的概念。“优先级反转”的概念是,如果某个高优先级线程P被阻塞,等待低优先级线程L执行某项操作,那么操作系统暂时将L的优先级提升到至少与P的优先级相同的优先级将是有利的 “之前发生”是Java语言规范中的一项保证,它帮助我们推

我想知道在诸如
volatile
variable或
finally
块释放锁等关系发生之前,是否会发生优先级反转?我理解这些规则会产生一种先发生后发生的关系,编译器无法对指令进行重新排序。它是否也会影响优先级反转,或者它们是独立的概念?有人能给我举个例子让我更好地理解这一点吗?

单独的概念。“优先级反转”的概念是,如果某个高优先级线程P被阻塞,等待低优先级线程L执行某项操作,那么操作系统暂时将L的优先级提升到至少与P的优先级相同的优先级将是有利的


“之前发生”是Java语言规范中的一项保证,它帮助我们推断一个线程所做的内存更新是否以及何时对其他线程可见。

我认为优先级反转与您提到的任何其他事情都完全无关。优先级反转是关于调度不同优先级的任务,这可能与
volatile
最终
有什么关系?优先级反转可能涉及锁(不)被释放,是的。但我不确定您所问的优先级反转和内存障碍/指令重新排序之间的联系。你能澄清你的问题吗?你认为可能有什么联系?