我最近阅读了 Yin Yan 等人的论文“让 Android 准时运行”。为了完全理解这个主题,我还阅读了一些关于 Java 的实时规范 (RTSJ) 以及许多实时虚拟机、垃圾收集器等的内容。尽管如此,我仍然有一个疑问。符合 RTSJ 的虚拟机使用优先级继承来防止优先级反转,但我知道这种算法不能防止死锁。由于线程无法控制资源获取的顺序,因此存在循环等待的可能,这实际上会导致死锁。
那么,鉴于此,将 Java 用作实时编程语言(包括桌面和移动应用程序)真的安全吗?
我的问题不在于按原样使用 Java、Android 或 Linux。我的问题是关于 RTSJ(优先继承)选择的算法,因为它不能防止死锁的发生。