【问题标题】:Multithreaded Timer Task多线程定时器任务
【发布时间】:2015-12-15 19:40:32
【问题描述】:

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

  1. 如果我使用同一个表进行读取/插入和更新 多个线程可以这样做吗?
  2. 如果是这样,我如何在一个定时器任务中运行多个线程?我想我可以 只需创建线程并运行,但我如何确保它们同时运行而不是顺序运行?

我使用的是 java 1.4,它在 jboss 2.4 上运行,我在进程中使用 EJB 1.1 会话 bean 来读取/更新/添加数据。

【问题讨论】:

  • 这与您的问题无关,但请注意:在美国,“kkk”通常与 ku klux klan(白人至上团体)相关联,因此它可能不是最佳用户名。

标签: multithreading performance timer timertask java1.4


【解决方案1】:

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

  1. 视情况而定。通常,您可以并行读取,但不能写入。如果您的阅读量远大于写作量,您可能还可以,但您可能会发现自己正在处理令人沮丧的竞争条件。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多