怎么优化线程的run方法
该线程占用cpu时间长,并且占用内存多。run方法哪地方需要优化,请大侠们指教,坐等回答...
下面是线程的run方法,该方法的作用是检查数据库中有没有未处理的事件,如果有,就处理。
while条件一直是true
commonService.basicQuery()方法是来查询数据库
catch中的doPauseThread()方法是让该线程睡5秒
public void run() { String err = "Error occurred in FlightEventThread, Administrated"; while (isThreadAlive) { try { List<FlightEvent> allEvent = commonService.basicQuery( FlightEvent.class, (Object) exampleEvent, true, "eventId"); for (FlightEvent event : allEvent) { event.setIsProcessed("P"); commonService.basicUpdate(event); IEventProcessor eventProcessor = (IEventProcessor) Global.applicationContext .getBean(event.getEventProcess().getProcessBean()); eventProcessor.setEvent(event); try { eventProcessor.execute(); eventProcessor.doSendMessageToFront(); } catch (IllegalDataException ie) { log.error(err, ie); } catch (Exception e) { log.error(err, e); } } /* Sleep is not needed disable by hwlcsx */ /*doPauseThread();*/ } catch (Exception e) { log.error(err, e); } finally{ doPauseThread(); } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
doPauseThread 这个怎么写的? Thread.sleep?,而且 你可以把业务代码 一部分 一部分的去掉来调试,再看CPU占用率高不