2014-09-19 49 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
  • 加入所有的线程在你的主线程
相关问题