0

我不是一个彻底的 JAVA 专业人士,但有编程经验,但没有线程。我有一个当前执行以下操作的应用程序代码。

  1. 与数据库建立连接
  2. 将数据库中的记录拉到一个集合中(每条记录都有一个“操作代码”1-5,除了其他东西
  3. 每条记录都被一个一个地挑选出来,并根据每个动作代码,从一个类 EVENTHANDLER.class 中调用一些特定的方法(每个动作代码一个)
  4. 这些单独的方法还使用/共享 EVENTHANDLER.class 和其他一些类中的一些其他方法,用于一些常见的功能
  5. 最后更新 db_sequence
  6. 处理完所有记录

现在,我有一个要求,现在有点模糊,但它希望在上面引入线程,主要是为了提高性能。除了将某些特定操作代码的某些记录的过程优先于其他记录之外。例如 - 操作代码为 -2 的记录的优先级应高于 1,然后是 3,然后是 4。

我的问题是如何首先采用实现这一点的方法。其次,这是在 JAVA 1.6 中完成的,所以我应该使用哪些类。此外,任何方向代码(示例代码)或基于上面的功能流程都会非常有帮助。

一个非常直接的问题是 - 对于上述操作代码 (1-5),我应该有五个线程同时运行,还是应该为每条记录设置一个线程(可能有数百个),而不管操作代码如何?

已经谢谢了

4

1 回答 1

2

如果我是你或要求你这样做的人,我会很担心。

你有数字来显示现有应用程序的性能吗?如果是,它们是否超过了预期性能的目标?在我拥有两者之前,我不会对线程做出判断。

线程是一个很容易出错的高级主题,即使您有经验。

在我看来,数据库部分可以是单线程。处理程序可能会长时间运行,因此我会使用 Executor 和 Java 并发包中的新结构来运行这些处理程序。在任何情况下都不应使用原始线程执行此操作。

听起来你需要帮助。我会找到比您更了解 Java 的人来咨询。

于 2013-02-05T12:47:37.877 回答