社区
Java SE
帖子详情
线程会不会被gc回收?
jdgdf566
2013-12-28 01:28:36
1.主线程
2.用户线程
3.守护线程
哪种会被gc回收?是不是守护线程不会被gc回收?(所有非守护线程都结束时除外)。守护线程在执行完一次后,是否可以设置为用户线程?
我想弄一个线程,可以重复执行多次也就是可以reset和restart,使用实现了Worker接口的线程就可以是吧。我还想重复执行多次之后,这个线程的使命就完成了,让这个线程处于可以被gc回收的状态。
...全文
1112
3
打赏
收藏
线程会不会被gc回收?
1.主线程 2.用户线程 3.守护线程 哪种会被gc回收?是不是守护线程不会被gc回收?(所有非守护线程都结束时除外)。守护线程在执行完一次后,是否可以设置为用户线程? 我想弄一个线程,可以重复执行多次也就是可以reset和restart,使用实现了Worker接口的线程就可以是吧。我还想重复执行多次之后,这个线程的使命就完成了,让这个线程处于可以被gc回收的状态。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
树成
2013-12-28
打赏
举报
回复
线程不会被回收,线程对象会。 当一个线程被阻塞,被挂起,或者正在执行,都不会被回收。 很简单,我无限循环某个操作,难道gc还能回收掉不让他执行么? 再者,我设置一个线程挂起,2年后执行,难道不行么? 在java里面,线程未启动,或者线程完成执行以后,起对应的线程对象在没有强引用的情况下就会被回收掉。
copy202
2013-12-28
打赏
举报
回复
1.用户线程执行完后就会被gc回收 2.守护线程在所有用户线程执行完成之后退出 3.守护进程在下一次start之前设置setDaemon(false)可以转为用户线程 4.想重复利用线程的话,可以使用Concurrent包里面的线程池,FixedThreadPool或者CachedThreadPool
teemai
2013-12-28
打赏
举报
回复
线程也会被回收啊。一般只要是不可用不可达的内存地址对象都可以被回收
谈下Spring IOC容器为什么
不
会
被
GC
前言 JVM的内存是有限的,因此不可能让我们无限地创建对象,JVM
GC
的诞生就是为了对不再存活的对象进行
回收
,释放内存的,那么怎样判断对象已死呢?了解过JVM
GC
的人,可能就知道JVM其实通过可达性分析来判定对象是否存活的,这个算法的基本思路就是通过一系列称为
GC
Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链 ,当一个对象到
GC
Roots没有任何引用链相连时,则证明此对象是不可用的。(读者如果对JVM
GC
感兴趣,推荐看下周志明的《深入理解JAVA虚拟机》) 那么
Java中什么样的对象才能作为
gc
root,
gc
roots有哪些
GC
管理的主要区域是Java堆,一般情况下只针对堆进行垃圾
回收
。方法区、栈和本地方法区不被
GC
所管理,因而选择这些区域内的对象作为
GC
roots,被
GC
roots引用的对象不被
GC
回收
。 详细:
GC
Root 常说的
GC
(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,
GC
会
收集那些不是
GC
roots且没有被
GC
ro...
ThreadLocal 的key是弱引用,为啥
gc
无法
回收
?如何解决?
🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!
Java 垃圾
回收
根对象
参考:百度知道https://zhidao.baidu.com/question/1753749697666223868.html 运行中的
线程
是称之为垃圾
回收
根对象的一种,
不
会
被垃圾
回收
。当垃圾
回收
器判断一个对象是否可达,总是使用垃圾
回收
根对象作为参考点。 例如,主
线程
并没有被引用,但是
不
会
被垃圾
回收
。垃圾
回收
根对象是可在堆之外被访问的对象。一个对象可由于下列原因成为
GC
根对象:Syste...
Java里将对象设置为null,是否
会
被立刻
回收
?
Java里将对象设置为null,是否
会
被立刻
回收
? 一个对象置为null,并
不
会
被立刻
回收
,还需要进行finalize()方法。但是只能逃脱一次。 对象在正式宣告死亡,被
回收
前通常
会
经历两次标记的过程(引自:《深入理解Java虚拟机》): 当对象与
GC
root无相连的引用链后,
会
被第一次标记,然后
会
进行筛选,筛选条件为该对象是否有必要执行finalize()方法。如果对象没有覆盖finalize()或者finalize()已经被虚拟机调用了,则以上两种情况下都
会
定为没有必要执行。 当对
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章