Java 如何释放因垃圾收集而关闭的Executor服务的内存?
我目前正在开发一个使用大量线程的程序 答:我的问题是,一旦遗嘱执行人因垃圾收集而停工,释放他们,最好的办法是什么?我在某个地方读到,我必须访问未来(可运行或可调用),并将其设为null,以便垃圾收集器拾取它。这是真的吗 B-同样的问题也适用于线程池Java 如何释放因垃圾收集而关闭的Executor服务的内存?,java,multithreading,memory-leaks,garbage-collection,executorservice,Java,Multithreading,Memory Leaks,Garbage Collection,Executorservice,我目前正在开发一个使用大量线程的程序 答:我的问题是,一旦遗嘱执行人因垃圾收集而停工,释放他们,最好的办法是什么?我在某个地方读到,我必须访问未来(可运行或可调用),并将其设为null,以便垃圾收集器拾取它。这是真的吗 B-同样的问题也适用于线程池 感谢您的帮助,如果不再有对执行器服务的引用,这应该自动完成。内部线程可调用或可运行的资源在GC完成后被启用,但它们返回的资源除外 如果您想强制运行GC。你应致电: System.qc(); 然后GC将在后台开始他的工作。如果您想释放一个对象,您应该
感谢您的帮助,如果不再有对
执行器服务的引用,这应该自动完成。内部线程可调用或可运行的资源在GC完成后被启用,但它们返回的资源除外
如果您想强制运行GC。你应致电:
System.qc();
然后GC将在后台开始他的工作。如果您想释放一个对象,您应该确保不再有对它的引用。如果需要对其进行引用,则无法释放它。很少需要null
输出reference.gc而不是qc。它不是强制运行GC,而是给JVM一个运行GC的提示。没有保证它会释放任何东西。