public class SimpleThread extends Thread { public static String filter=";"; public static int i=0; public ResultSet result; public static HashMap<String,Vector<HashMap>> hm;
public SimpleThread(ResultSet result,HashMap<String,Vector<HashMap>> hm) { this.result=result; this.hm=hm; }
public void run() { System.out.println("simple start"); Date ttstart = new Date(); SimpleDateFormat ttf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); System.out.println(ttf.format(ttstart)); long arrt1 = System.currentTimeMillis(); try {
while (result.next()) {
...............还有其他代码 ............... }
------解决方案--------------------
举例如下:
Java code
try {
synchronized(result){ // 获取该行的所有值之前给result对象加锁
if (result.next()) {
int id = result.getInt(1);
// ......
String s = result.getString(10);
}
} // 获取该行的所有值后同步锁解除
//其它代码
} catch (Exception e){}
------解决方案-------------------- 举例如下:
Java code
try {
synchronized(result){ // 获取该行的所有值之前给result对象加锁
if (result.next()) {
int id = result.getInt(1);
// ......
String s = result.getString(10);
}
} // 获取该行的所有值后同步锁解除
//其它代码
} catch (Exception e){}
------解决方案--------------------
没有必要的,因为获取result对象锁的对象只能有一个,一个对象不可能同时获取A,B两个对象的锁的