线程会不会被gc回收?

jdgdf566 2013-12-28 01:28:36
1.主线程
2.用户线程
3.守护线程
哪种会被gc回收?是不是守护线程不会被gc回收?(所有非守护线程都结束时除外)。守护线程在执行完一次后,是否可以设置为用户线程?
我想弄一个线程,可以重复执行多次也就是可以reset和restart,使用实现了Worker接口的线程就可以是吧。我还想重复执行多次之后,这个线程的使命就完成了,让这个线程处于可以被gc回收的状态。
...全文
957 3 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
线程也会被回收啊。一般只要是不可用不可达的内存地址对象都可以被回收

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧