日期:2014-05-18  浏览次数:20695 次

多线程同步,jdbc问题
有如下一个查询一个表的类
public   void   demo()   {
OracleDB   db   =   new   OracleDB();
String   sql= "select   *   from   aaa ";
ResultSet   rs   =   db.UseQuery(sql);
try   {
while   (rs.next())   {
String   aaa01   =   (rs.getString(1));
System.out.println(aaa01);
}
catch   (SQLException   e)   {
e.printStackTrace();
}
}
我将这个demo()放到了5个线程里去处理,以提高遍历的速度,这就存在一个线程同步的问题,如果不加同步处理,会出现5个线程都对所有的结果进行遍历,预期的结果是5个线程交替对记录进行遍历,我做的同步处理如下:
public   void   demo()   {
OracleDB   db   =   new   OracleDB();
String   sql= "select   *   from   aaa ";
ResultSet   rs   =   db.UseQuery(sql);
try   {
synchronized   (rs)   {
while   (rs.next())   {
String   aaa01   =   (rs.getString(1));
System.out.println(aaa01);
}
}
catch   (SQLException   e)   {
e.printStackTrace();
}
}
可是问题依然存在,我实在不知道该怎么处理了,请高手帮忙!


------解决方案--------------------
随便说句话。