簡體   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