6
A
回答
4
你將需要兩件事。你希望你的實時線程獲得優先級,最好是由定時器驅動,這樣你就可以(幾乎)進行週期性的測量。然後,您將需要一個可用於傳遞值的資源。這可以是一個簡單的監視器,具有一個臨界區域,以便定時器線程可以寫入它,或者它可能 - 更可能會更好 - 一個FIFO,以便GUI線程可以在任何時候吃掉值有周期。
在Java中,GUI(至少在Swing和類似中)已經運行了UI交互的獨立線程,所以你最大的問題是設置你的測量線程。看看Runnables。
2
要使用實時線程,您需要實時操作系統上的Real Time Java。 http://java.sun.com/javase/technologies/realtime/index.jsp
但是,如果你有一個對延遲敏感的線程,我建議你;
- 在與其他線程通信中使用併發庫。
- 儘量減少任何GC活動(ESP全GCS)
- 不運行在同一進程線程的GUI,如果你能(因爲它往往攫取了大量的資源的方式,你可以控制在有限)
2
由於其他人提出了RTSJ,我會評論實時代碼和非實時代碼之間的同步有許多解決方案。 RTSJ爲此類溝通提供wait-free queues。也可以建立在這些或其他隊列之上,並利用RTSJ的AsyncEvent
和AsyncEventHandler
抽象來管理通信。這適用於您確實需要「實時」線程的確定性行爲的情況。
如果您可以接受盡力而爲的行爲(儘量努力達到最終期限,但如果您錯過了世界並不會分崩離析),我建議您在the Java concurrency utilities提供的執行程序框架上仔細構建。仔細選擇任務邊界,合適的排隊策略(在這裏,「合適」取決於你的應用程序的更多細節,而不是你所給出的),並且線程池策略將得到你所需要的。
相關問題
- 1. 多線程,線程間通信,同步
- 2. 多線程與線程佔先同步
- 3. 多線程,線程同步
- 4. 同步線程通信?
- 5. Java線程同步通知
- 6. 線程與事件同步
- 7. 線程與MPI同步
- 8. 線程同步與boost :: condition_variable
- 9. 線程與ThreadPoolExecutor同步
- 10. Android - 與mainUi線程同步
- 11. 線程同步
- 12. 線程同步
- 13. 線程同步
- 14. 線程同步
- 15. 線程/同步
- 16. 線程同步
- 17. 同步線程
- 18. 線程同步
- 19. 線程同步
- 20. Parallel.For vs普通線程
- 21. 線程同步VS進程同步
- 22. Python線程同步
- 23. 線程和同步
- 24. 線程和同步
- 25. .NET線程同步
- 26. 同步:ImageDownloader線程
- 27. 線程vs同步
- 28. Python線程同步
- 29. C#線程同步
- 30. 同步線程IllegalStateException