首页 > 解决方案 > java中对线程的引用何时超出范围?

问题描述

当我们在 Java 中定义新线程时,线程的引用何时脱离上下文?例如,如果我创建一个WeakHashMap<Thread, Object>死线程的条目何时会从此 Hashmap 中删除?

此外,如果使用线程池执行某些任务(Runnable),来自 hashmap 的引用是否会被丢弃?

标签: java

解决方案


只要线程还活着,它就是垃圾收集根。一旦它终止,它将有资格从弱哈希映射中删除。

对于第二部分,参考什么?如果引用 Runnable 任务,一旦线程池完成执行任务,线程池持有的引用将消失。池中的线程将继续执行任务,直到池关闭或由于未捕获的异常而死亡。


推荐阅读