我有一个使用Timer和TimerTask调度的进程,它每晚运行。目前ti大约需要一个小时才能完成。考虑到只有6000条记录要在整个过程中循环,上层管理人员觉得这是一项效率非常低的工作。所以我想知道我是否可以用不同的数据集跨越同一工作的多个线程。Probaby每个线程一次只处理500条记录。
- 如果我使用多线程可以这样做吗
- 如果是,我如何在一个定时器任务中运行多个线程?我想我可以只需创建线程并运行,但如何确保它们同时运行而不是按顺序运行
我使用的是java 1.4,它运行在jboss 2.4上,在这个过程中我使用EJB 1.1会话bean来读取/更新/添加数据。
你的帖子中没有足够的信息来确定答案,但我会分享一些想法:
-
这取决于情况。一般来说,你可以并行读取,但不能写入。如果你的阅读比写作多得多,你可能还可以,但你可能会发现自己正在应对令人沮丧的比赛条件。
-
这取决于情况。永远不能保证线程并行运行。这取决于cpu/内核/jvm来决定。你只需要创建线程来告诉机器允许并行执行它们。