mongodb3.x java driver 细节
程序员文章站
2022-03-20 21:53:34
...
最近业务,需要在子线程中使用到mongo,本以为线程中run方法结束,MongoClient会自动销毁。在实际测试中,发现,子线程run方法语句执行结束后,如果没有关闭MongoClient,子线程就会一直存在,不会销毁。
一开始以为只在子线程中会这样,后面在main方法中直接初始化MongoClient,不关闭的话,主线程所有语句执行完毕,主线程不会停止,而是一直存在。以前没遇到过这个问题,也可能是最近3.x驱动才有的。
所以我们经常在使用单例MongoClient的时候,是没有什么问题,因为进程结束时所有资源都会被释放,当然MongoClient内部不知用何种方式一直存在的资源也会被释放掉。但是如果在子线程中初始化了MongoClient,而不关闭的话,会导致内存泄露,切记子线程中自己打开的MongoClient要及时调用close方法,保证MongoClient的资源被释放掉。
mongo java driver version:mongo-java-driver-3.2.0
推荐阅读
-
java switch语句使用注意的四大细节
-
java执行-cp报错 error: could not load JDBC driver
-
Java日常错误及需要注意细节,持续更新......
-
Java编程细节-重构-为什么 if-else 不是好代码
-
java string的一些细节剖析
-
【⭐】Java—Spring-—数据库操作—使用内置连接池,报读取不到驱动错误。Could not load JDBC driver class。
-
Java编写画图板程序细节-保存已画图形
-
Reactive-MongoDB 异步 Java Driver 解读
-
idea启动项目报错Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
-
Java中的Switch对整型、字符型、字符串型的具体实现细节