繁体   English   中英

Java实时设计rtsj

[英]java real time design rtsj

我正在考虑如何使用没有Sun Real-time System API的 Java构建实时系统。

假设老板在上午11:00产生了一个事件,他必须在上午11:10获得反馈。 如果没有任何反馈,他将重新发送活动。

员工在上午11:01收到老板的活动,他必须离开1分钟才能将结果发送回老板。 所以实际上他有8分钟的时间完成工作。 在上午11:09,无论是否完成,他都必须发送反馈。

这是一个实时系统,不是吗?

在这种情况下,如何使用java设计我们的系统? 这是生产者-消费者模式。 在消费者方面,使用哪个对象(阻塞队列,延迟队列...)来满足此要求?

任何开放源码的网络链接都将受到欢迎。

谢谢。

您无法使用Java在真正的计算机工程意义上进行实时编程。 您受线程调度程序和具有完全未知的基础属性的操作系统的约束。 如果操作系统想等到11:20才恢复到给JVM一些CPU时间,那就是它的工作。

如果您用Microsofty的方式表示“实时”,如“事物响应的速度非常快,请注意不要阻塞主UI线程”,因为这没有明确的技术含义。 它仅表示“面向用户的体系结构代码提供了不必在计算机上等待的外观”。

-编辑以回应评论。

如果到11:08的意思是“介于11:07:59和11:08:01之间”,那么常规的Java通常可以在经过精心编程的现代平台上为您做到这一点。 它无法提供的情况是,在11:08:01发生的事件被认为是平台缺陷,只是不能保证这一点。

当我们说“实时”以及RTS API的用途时,情况更像是“接合头必须恰好在此毫秒处处于这些坐标处,如果延迟时间超过半毫秒,则零件将有缺陷,并且如果它早于2毫秒,那么价值300,000美元的伺服工作台将撞入其轴承,并导致10,000,000美元的装配线中断。”

您描述的系统可以使用JMS解决。

使用pub-sub JMS队列分配工作。 “老板”是发布者。 每个工作人员都是一个“订户”。

“老板”将需要将其发布的每个消息存储在“ check back”区域(可能是列表)中,并将计时器设置为10分钟。 当收到对消息的响应时,它将清除计时器并将消息从“检查返回”区域中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM