☀️Terry

- - 草木逢春,雨过天晴🌈。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
由于使用到线程变量本地存储,项目上线出现会内存溢出问题,
 
原因是。交易完成未在交易结束,清理到ThreadLoacl存储的数据,导致线程存储会随交易的增加,而增加,导致内存溢出
 
解决方案,有两种
 
配置规避:
代码配置,因为使用到线程池,可以配置线程核心数,和线程最大数,为一致,
keepAliveTime = 0
当为负数,会报错。
当设置为0时:
      当线程池中的线程数大于corePoolSize时,keepAliveTime为多余的空闲线程等待新任务的 最长时间,超过这个时间后多余的线程将被终止。这里把keepAliveTime设置为0L,意味着多余 的空闲线程会被立即终止。
 
当然设置为一样的话,不会出现回收的问题,从制止解决多次创建多个线程,回收,导致的oom。
 
代码规避:
代码上:
调用remove 清除。

posted on 2020-06-10 17:53  ☀️Terry  阅读(3503)  评论(0编辑  收藏  举报