java - 在现有代码上实现线程

标签 java multithreading concurrency java-6 concurrent-programming

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

  1. 与数据库建立连接
  2. 将记录从数据库中提取到集合中(除了其他内容之外,每条记录都有一个“操作代码”1-5
  3. 每条记录都被一一挑选,并根据每个操作代码从类 EVENTHANDLER.class 调用一些特定的方法(每个操作代码各一个)
  4. 这些单独的方法还使用/共享 EVENTHANDLER.class 和其他一些类中的一些其他方法来实现一些常见功能
  5. 终于更新了 db_sequence
  6. 所有记录均已处理完毕

现在,我有一个要求,目前还不太模糊,但它希望在上面引入线程,主要是为了提高性能。同时将具有某些特定操作代码的某些记录的处理优先于其他记录。例如,操作代码为 -2 的记录应该比 1、3、4 具有更高的优先级。

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

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

谢谢了

最佳答案

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

您有数据可以显示现有应用程序的性能吗?如果是,他们是否超出了预期绩效目标?在我同时拥有这两个线程之前,我不会对线程做出判断。

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

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

我觉得你需要帮助。我会找比你更了解 Java 的人来咨询。

关于java - 在现有代码上实现线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707861/

相关文章:

java - Java/Swing 中的分段列表?

c++ - boost::unique_lock,多次读取正在减慢编写器的速度

java - 在多线程和高负载场景下使用java file io好吗?

java - 在多线程环境中以下列方式构造对象是否安全

java - setPriority() 方法不能正常工作

JavaFX 事件调度线程与 JavaFX 应用程序线程?

java - Mockito:如何匹配 String 和 List<String> 参数

java - 如何检测 java 系统类?

multithreading - Lparallel.queue 线程安全吗?

c++ - std::call_once,应该什么时候用?