多线程计时器任务

时间:2015-12-15 19:40:33

标签: multithreading performance timer timertask java1.4

我有一个使用Timer和TimerTask计划的进程,每晚运行一次。目前,大约需要一个小时才能完成。考虑到只有6000条记录可以循环完成这个过程,而高层管理人员认为这是非常低效的Job。所以我想知道我是否可以使用不同的数据集跨越同一作业的多个线程。 Probaby每个线程一次只处理500条记录。

  1. 如果我正在使用同一个表进行读取/插入和更新 多线程可以做到吗?
  2. 如果是这样,我如何在计时器任务中运行多个线程?我想我可以 只是创建线程并运行,但我如何确保它们同时运行但不是顺序运行?
  3. 我使用的是java 1.4,它运行在jboss 2.4上,我在这个过程中使用EJB 1.1会话bean来读取/更新/添加数据。

1 个答案:

答案 0 :(得分:0)

您的帖子中没有足够的信息来确定答案,但我会分享一些想法:

  1. 这取决于。通常,您可以并行读取,但不能写入。如果你的阅读比写作要多得多,那么你可能已经好了,但你可能会发现自己处理的是令人沮丧的竞争条件。

  2. 这取决于。永远不能保证线程并行运行。这取决于cpu / kernel / jvm来决定。您只需创建线程告诉机器允许它并行执行它们。