2014-09-19 14 views
0

是否有可能,從面向對象的角度來看,創建以下程序:如何處理以「OOP」方式同時並獨立運行的多個類實例?

  1. 如果我有一個應該跟蹤多個網絡查詢數據的跟蹤類,我可以有多個跟蹤程序(〜50)同時運行和查詢不同的數據? **

  2. 我可以讓每個Tracker對象將其數據(必要時)傳遞給我也創建的Processor類中的數組嗎?

  3. Processor類可以在後臺同時運行Tracker對象持續處理的數據嗎?

爲了澄清,是否有可能創建多個類實例與主程序同時運行並將數據傳遞給一個公共變量?這怎麼能夠在避免問題的同時實現呢?在Tracker實例向它傳遞數據時,主程序訪問公共變量的地方?該程序旨在無限期運行。

我正在考慮與Java中的線程相關的場景,還是更高級的,還是其他的東西?

我知道這是一個涉及的問題,我很欣賞任何答案。請注意,雖然我有僞代碼,但我還沒有編寫任何實際的代碼。在我開始之前,我想在正確的方向上進行一些微調。

我正在尋找@ Soana的答案,但更多的答案也將是偉大的!

+2

古典生產者 - 消費者 - 例如與線程,我想:-) – Smutje 2014-09-19 06:04:06

+0

每個跟蹤對象有檢索的方法數據並將其發送到Processor類的數組(如果是ne) cessary。所以,我需要50個Tracker對象同時運行它們的檢索方法。 – asuprem 2014-09-19 06:05:55

+1

您是否聽說過Executors,Callable,Future?他們可能值得調查。 – Fildor 2014-09-19 06:26:06

回答

1

你爲什麼不準確地做你說的?

  • 給您Processor一個隊列(例如,BlockingQueue,其被設計爲恰好這些目的)
  • 開始50個線程,其中執行Tracker「s法。給他們的Processor
  • 運行的隊列中的Processor某處(主線程,其中,所述主方法執行,或者在一個附加的線程)
  • 當確定有足夠的數據跟蹤/處理,關閉的基準所有Tracker -threads和Processor -thread
  • 加入所有的線程在你的主線程
相關問題