当我们在Java中定义新线程时,线程的引用何时脱离上下文?例如,如果我创建WeakHashMap<Thread, Object>
什么时候会从此Hashmap中删除死线程的条目?
如果使用线程池执行某个任务(Runnable
),是否会丢弃来自hashmap的引用?
答案 0 :(得分:2)
线程是垃圾收集根,只要它还活着。一旦终止,它就有资格从弱哈希映射中删除。
对于第二部分,参考什么?如果引用Runnable任务,则一旦池完成执行任务,线程池保留的引用将消失。池中的线程将继续执行任务,直到池关闭或由于未捕获的异常而导致它们死亡。