0

我检索了一个包含很多行的 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);

    ....
    ....

} 

有什么建议吗?

样品非常感谢!谢谢!

4

1 回答 1

0

如果我是你,我宁愿在单独的线程中执行查询,例如:

select * from table_name where mod(id,threadCount)=threadId

只需给每个线程一个 id 并执行它们。这样,每个线程将有不同的数据要处理

于 2013-04-05T08:29:05.637 回答