java面试
java面试相关问题
codeBrute
这个作者很懒,什么都没留下…
展开
-
ThreadPoolExecutor一句话总结
任务command提交到ThreadPoolExecutor,经历核心线程数、队列容量和最大线程数的判断,小于线程数(核心线程数/最大线程数)创建线程并将任务交给线程执行,小于队列容量则加入队列,否则执行拒绝策略。(略去一些线程运行状态的检查)原创 2022-09-01 22:00:09 · 123 阅读 · 0 评论 -
ThreadLocal内存泄露问题
只要线程一直存在ThreadLocalMap内部Entry一直存在,由于key对应的ThreadLocal为弱引用,只要不存在强引用,就会GC,value为强引用,如果不在最后调用ThreadLocal.remove(),会一直没办法GC,导致内存泄露。这时候的test1除了Entry中的value引用外,不存在其他强引用,设置为弱引用时会被GC回收,这时候恰好调用threadLocal.get(),这是后就会出现bug。value设置为强引用,没办法设置为弱引用,因为我们设置值时一般是这样的。......原创 2022-09-01 11:31:30 · 151 阅读 · 0 评论