关于在线程池里放入的临时线程何时被回收的问题

ijwzwhy 2013-09-29 10:03:13
线程池是用ScheduledThreadPoolExecutor ,示例代码如下:
private static ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(10);
public static void testMethod(){
MyThread t=new MyThread ();//方法内部创建的临时线程,理论上方法内部定义的对象只存活到方法执行完
exec.schedule(t, 0, TimeUnit.MILLISECONDS);//schedule方法只会调用一次改线程
}
————————————————————————————
线程对象t在线程被线程迟exec调用完以后是否会被回收机制回收?若不能回收是不是因为exec.schedule这个函数会使得exec里面的某些成员引用了t?
...全文
353 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijwzwhy 2013-09-29
  • 打赏
  • 举报
回复
引用 1 楼 a1006570862 的回复:
并不是对象被抛弃后当即被回收的。JVM进程做空间回收有较大的系统开销。如果每当某应用进程丢弃一个对象,就立即回收它的空间,势必会使整个系统的运转效率非常低下。 回收机制是根据引用计数法,对象引用也有分为强引用弱引用,
不马上回收不要紧,最重要是回收机制执行的时候,是否判断t是要回收的对象
地下室森林 2013-09-29
  • 打赏
  • 举报
回复
并不是对象被抛弃后当即被回收的。JVM进程做空间回收有较大的系统开销。如果每当某应用进程丢弃一个对象,就立即回收它的空间,势必会使整个系统的运转效率非常低下。 回收机制是根据引用计数法,对象引用也有分为强引用弱引用,

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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