public class TestThread extends Thread{
public void run(){
JDBCConnector conn = new JDBCConnector();
conn.creatConnection();
StringBuffer ids;
ResultSet rs;
//其他String變量
while(true){
try{
rs = null;
ids = new StringBuffer();
rs = conn.executeQuery("select id from test1 where status=0");
while(rs.next()){
ids.append(rs.getInt("id"));
ids.append(",");
}
//1、簡單的業(yè)務(wù)邏輯處理,會用到其他String變量
//2、業(yè)務(wù)邏輯處理完成后,根據(jù)ids將status更新為1
Thread.sleep(1000);
}catch (Exception e) {
e.printStackTrace();
}
}
}
}以上這個線程,運(yùn)行幾天后,tomcat會報[b]“GC overhead limit exceeded”[/b],d代碼上是否有什么不合理的地方。
3 回答

30秒到達(dá)戰(zhàn)場
TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊
可能是因為rs沒有關(guān)閉。
[code="java"]if(!rs.isClosed()){
rs.close();
}
Thread.sleep(1000); [/code]
添加回答
舉報
0/150
提交
取消