Java的实时规范表明它提供了处理优先级转换案例的工具,如优先级继承和优先级上限协议。
On POSIX,有一个pthread_mutexattr_getprotocol
可以设置用于解决此问题的协议
PTHREAD_PRIO_NONE
PTHREAD_PRIO_INHERIT //(PIP)
PTHREAD_PRIO_PROTECT //(PCP)
我想知道它在Real Time Java上的等价性。
谢谢。
答案 0 :(得分:1)
要求符合RTSJ的实现至少支持优先级继承;优先级上限是可选的。例如,IBM WebSphere Real Time支持优先级继承,并依赖于操作系统为所有Java锁提供优先级继承(这意味着总是存在与任何锁定对象关联的pthread互斥锁,尽管我们仍然有办法使其更快否则会发出声音,特别是对于实际上没有争用的锁具。旋转锁(传统的非实时JVM倾向于用于加速短暂锁定)不能在实时JVM中使用,因为当线程以不同的优先级运行时会引入活锁问题(对于SCHED_RR / SCHED_FIFO策略) ,无论如何,优先级更高的优先级,期间)。