以下为本人在工作中遇到的内存泄漏的案例:
1、对于大量的请求,使用了Executors.newCachedThreadPool()返回的线程池。
这个线程池是没有界限的,如果每个线程处理时间较长,而且请求很多,会无限吃内存。
2、对于数据库查询,使用MyBatis的openSession获取SqlSession,然后忘记了close。
SqlSession推荐在try-catch-finally语句的finally语句块中显式地调用close()方法
以下为本人在工作中遇到的内存泄漏的案例:
1、对于大量的请求,使用了Executors.newCachedThreadPool()返回的线程池。
这个线程池是没有界限的,如果每个线程处理时间较长,而且请求很多,会无限吃内存。
2、对于数据库查询,使用MyBatis的openSession获取SqlSession,然后忘记了close。
SqlSession推荐在try-catch-finally语句的finally语句块中显式地调用close()方法