java - Real Time Java 如何避免优先级倒置

标签 java real-time

Java 实时规范表明它提供了处理优先级反转情况的工具,例如优先级继承和优先级上限协议(protocol)。

On POSIX ,有一个pthread_mutexattr_getprotocol可以设置用来解决这个问题的协议(protocol)

PTHREAD_PRIO_NONE
PTHREAD_PRIO_INHERIT  //(PIP)
PTHREAD_PRIO_PROTECT  //(PCP)

我想知道这在实时 Java 上的等效性。

谢谢。

最佳答案

需要符合 RTSJ 的实现至少支持优先级继承;优先级上限是可选的。例如,IBM WebSphere Real Time 支持优先级继承并依赖操作系统为所有 Java 锁提供优先级继承(这意味着总是有一个 pthread 互斥锁与任何锁定的对象关联,尽管我们仍然有办法使它比否则听起来,尤其是对于实际上没有争用的锁)。传统的非实时 JVM 倾向于使用自旋锁来加速短期持有的锁,但不能在实时 JVM 中使用,因为当线程以不同的优先级运行时(对于 SCHED_RR/SCHED_FIFO 策略),它们会引入活锁问题, 无论如何,在更高优先级优先的地方,句号)。

关于java - Real Time Java 如何避免优先级倒置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8093177/

相关文章:

java - 如何在Java中链接到本地​​文件?

java - 如何使用Java将生成的PDF文件保存到MySQL数据库?

c++ - 实时音频(发送和接收)的好库?

ios - Google Play 游戏服务 - 使用 AutoMatch 的最大玩家数量

java - Mule 3.7.3 - Dataveawe 消息转换器编码错误

java - 在 Java 中使用比较对二进制数组进行排序

java - 在解析过程中,module.a 绑定(bind) module.b 是什么意思?

stream - 如何实时生成缩略图?

algorithm - 有哪些确定性垃圾收集算法?

algorithm - 比较算法成本的正确方法