在现有代码上实现线程

时间:2013-02-05 12:43:22

标签: java multithreading concurrency java-6 concurrent-programming

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

  1. 与DB建立连接
  2. 将记录从数据库中提取到一个集合中(除了其他内容之外,每个记录都有一个'动作代码'1-5
  3. 逐个挑选每条记录,并根据每个动作代码从一个类EVENTHANDLER.class中调用一些特定方法(每个动作代码各一个)
  4. 这些单独的方法也使用/共享EVENTHANDLER.class中的一些其他方法以及其他一些类的常用功能
  5. 最后更新了db_sequence
  6. 处理完所有记录
  7. 现在,我有一个要求,现在有点模糊,但它希望在上面引入主要用于性能增强的线程。同时优先考虑某些记录的过程,其中一些特定的动作代码高于其他记录。例如 - 具有Action代码-2的记录应该是高于1,然后是3然后是4。

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

    一个非常直接的问题是 - 对于上面的操作代码(1-5),我应该有五个并发运行的线程,还是每个记录都有一个线程(可能有数百个),不管Action Code是什么? / p>

    非常感谢

1 个答案:

答案 0 :(得分:2)

如果我是你或那个要求你这样做的人,我会感到担心。

您是否有数字显示现有应用的效果?如果是,它们是否超出预期性能的目标?在我同时拥有它之前,我不会对线程做出判断。

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

听起来像数据库部分可以是单个线程。处理程序可能是长时间运行的,所以我将运行那些使用Executor和Java并发包中的新构造。在任何情况下都不应该使用原始线程执行此操作。

听起来我觉得你需要帮助。我找到了比你更了解Java的人。