今天在开发中 编写一个接口 需要涉及到数据迁移,由于是大表 在一开始就考虑了很多东西,多线程,数据一致性,性能优化等等,反而在do while的代码中忽略了最重要的东西,要保证代码不会出现死循环,不能影响线上业务,后面在单元自测中发现cpu上升到99,debug定位到代码存在死循环
死循环的原因是 由于代码出现异常 跳过了中止条件的累加 使得中止条件一直不成立
所以在编写循环的代码时候,一定要确保 中止条件能被执行
do{
try {
//业务代码
}catch (Exception e) {
//异常处理
}
finally {
/*中止条件的计算
保证最重一定能跳出循环
*/
}
}while (//中止条件)