悟空老师,目前手上有一个问题,想请教一下
1. 需要在阿里云RDS的MySQL中, 在2小时内解析完200W的订单,整个过程只是把一串订单JSON串拆解为多个字表进行存储
2. 分页查询,一页【5w】条数据,一共【45】页,并使用`newFixedThreadPool`这种类型的线程池, 服务器内存8G,然后内存一直往上飙 ,直到OOM
private final static ExecutorService executor1 = Executors.newFixedThreadPool(4);
// 分页...
for (int i=1; i < 总页数; i++) {
List<json对象> orderList = db.selectList();// 分页的查询,
orderList.parallelStream().forEach(obj -> {
executor1.execute(() -> {
// 拆解订单json串 并 更新到数据库
});
});
}
使用了 newFixedThreadPool
这种类型的线程池,使用的时候内存一直往上走, 直到OOM或者卡死机,
1.请问一下老师这种业务场景有没有更好的处理方式,
2.线程池用完之后内存会不会自己降回来
3.用了线程池,确实速度很快,但是内存一直飙升,很慌