Java中的多线程和线程分配动态增加db行数

时间:2017-12-07 04:36:15

标签: java multithreading

我有一个不寻常的要求,如果db行数增加,我需要以敏捷方式添加新线程并运行测试,而其他线程正在运行相同的测试(不同的数据集)。用户在不同时间点将数据行添加到db中。因此,当添加新行时,线程计数应该增加并在其他线程继续工作时启动它。

我当前的代码不起作用,因为线程产生发生一次,如果db表中有一行,它会启动线程,但是如果添加了新的db表行,则执行序列不会分配下一个线程。我如何才能最好地解决这个问题?我查看并研究并尝试但没有任何作用。我希望有人可以帮助实施方法。

在es.submit完成之前,列表中的下一个项目未在for循环中分配。我需要完全不同地看待这个吗?

以下是代码:

List<Trader> myList = SQLConnector.getListInfo();
List<List<Parts>> partitions = chopped(traderList, myList.size());
ExecutorService es = Executors.newFixedThreadPool(myList.size());

Collection<Future<?>> futures = new LinkedList<Future<?>>();

for (List<Parts> dateList : partitions) {
    MyCode tmpCommand = new MyCode(driver, "UA");
    tmpCommand.setTest(dateList);
    futures.add(es.submit(tmpCommand));
  }
}

0 个答案:

没有答案