【发布时间】:2013-09-10 17:24:41
【问题描述】:
这是我要解决的问题,但不确定如何解决:我有一个对象数组(例如大小为 100),每个对象都有一些 id。
Class Employee{
int EmployeeId;
}
有 10 个线程将从这个数组中读取数据并插入 进入数据库。
如何确保数据按照EmployeeId的递增顺序插入到DB中。 例如:
如果数组中有 EmployeeID 为 6、8 和 4 的对象,则这些对象 应按 EmployeeID 4、6 和 8 在 DB 中的顺序插入 DB。 如何为此编写多线程代码?
更新:请忽略 DB 部分,如果它令人困惑,我的主要意图是同时处理但顺序。
【问题讨论】:
-
如果数据库不控制 id 生成,按特定顺序输入它们有什么区别?
-
通常很难(不可能?)提前知道线程将被执行的顺序。所以我猜你不能确保你的对象是按顺序添加的,如果它们是由不同的线程竞赛添加的。但是你可以实现信号量来锁定一个线程并等待其他线程将它们的对象添加到数据库中。
-
如果你想要一个定义的序列,只需使用一个线程。多线程用于并发、独立的任务。
标签: java multithreading concurrency