【发布时间】:2023-03-31 23:15:01
【问题描述】:
我正在考虑如何使用 java不使用 Sun Real-time System API 来构建实时系统。
比如说,老板在上午 11:00 生成一个事件,他必须在上午 11:10 获得反馈。如果没有任何反馈,他将重新发送他的活动。
员工在上午 11:01 收到老板的活动,他必须留出 1 分钟的时间将结果发送回老板。所以实际上他有 8 分钟的时间来完成他的工作。上午 11 点 09 分,无论他完成与否,他都必须发送反馈。
这是一个实时系统,不是吗?
在这种情况下,如何使用 java 设计我们的系统?这是一种生产者-消费者模式。在消费者端,使用哪个对象(blockingqueue、delayqueue ...)来满足这个要求?
欢迎任何网络链接,开源。
谢谢。
【问题讨论】:
-
这真的是对问题的描述还是只是一个比喻?
-
您还需要扩展它的实时性。硬实时和软实时是有区别的。例如,汽车制动系统是硬实时的(如果响应时间太慢,将是灾难性的),而手机传输可能是软实时的(质量下降,但不是灾难性的)。此外,实时只是意味着在一组有保证的时间限制内运行。您的系统是否真的需要实时,或者只是接近计划(例如,它可能会关闭几毫秒)?
-
老板是否关心反馈是否恰好在 11:00:00,而不是 之后或之前 的微秒?如果是,那么它是实时的,您无法承受 JVM 的非确定性行为。如果在初始电子邮件和 11:00:59 之间的任何时间回复都可以接受,那么它不是实时的。
-
老板必须在上午 11:10 之前知道结果。如果是在上午 11:10 之前,为什么它不是实时系统?
-
Java(没有 RTS)完全无法保证任何事情都会在特定时间点或之前发生。我们可以基于底层平台设计良好且行为公平的知识做出安全的假设,但这与声称系统实际上是实时的方式不同,即确保机器人手臂准备好螺栓的计算机当汽车底盘在装配线上滚动时,车轮是实时的。
标签: java real-time real-time-java