为了账号安全,请及时绑定邮箱和手机立即绑定

线程运行两三天后报错

线程运行两三天后报错

三国纷争 2019-03-21 15:15:33
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、简单的业务逻辑处理,会用到其他String变量 //2、业务逻辑处理完成后,根据ids将status更新为1 Thread.sleep(1000); }catch (Exception e) { e.printStackTrace(); } } } }以上这个线程,运行几天后,tomcat会报[b]“GC overhead limit exceeded”[/b],d代码上是否有什么不合理的地方。
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

可能是因为rs没有关闭。

[code="java"]if(!rs.isClosed()){
rs.close();
}
Thread.sleep(1000); [/code]


查看完整回答
反对 回复 2019-04-26
?
开满天机

TA贡献1786条经验 获得超13个赞

jconsole开起来看看内存回收情况


查看完整回答
反对 回复 2019-04-26
  • 3 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号