我检索了一个包含许多行的ResultSet。必须分析每一行,所以我想在一个新线程中分析每一行(不要担心:我不会同时启动所有线程,假设一行10个线程)。整个ResultSet将专门用于从中读取数据(因此,它是一种静态只读表)。
所以我要做的是:
ResultSet rs;
public void loadResultSet(){
...
rs = _preparedStatement.executeQuery();
int rowSize = 0;
while (rs.next()) {
rowSize++;
}
//this method starts 10 threads simultaneously
runThreads(rowSize);
...
}
和
@Override
public void run() {
//Unknown object that allows me to store a copy of a single row from ResultSet
Foo foo = rs.absolute(index);
//Then i can retrieve data just like a normal ResultSet
String s = foo.getString(1);
....
....
}
任何建议吗?
样品真的很感激!谢谢!
如果我是u,我宁愿在单独的线程中执行查询,也像:
select * from table_name where mod(id,threadCount)=threadId
给每个线程一个id,然后执行它们。这样,每个线程将有不同的数据来处理