当前位置:编程学习 > JAVA >>

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

线程池是用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? 线程池 线程 --------------------编程问答-------------------- 并不是对象被抛弃后当即被回收的。JVM进程做空间回收有较大的系统开销。如果每当某应用进程丢弃一个对象,就立即回收它的空间,势必会使整个系统的运转效率非常低下。
回收机制是根据引用计数法,对象引用也有分为强引用弱引用, --------------------编程问答--------------------
引用 1 楼 a1006570862 的回复:
并不是对象被抛弃后当即被回收的。JVM进程做空间回收有较大的系统开销。如果每当某应用进程丢弃一个对象,就立即回收它的空间,势必会使整个系统的运转效率非常低下。
回收机制是根据引用计数法,对象引用也有分为强引用弱引用,

不马上回收不要紧,最重要是回收机制执行的时候,是否判断t是要回收的对象
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,