我处于通过入口点定义的API(例如“ OSGi”)在特定的Classloader中启动应用程序的情况。我已经制定了特定的方法,例如:start
和stop
。启动的应用程序位于名为applications
的数组中。
如果要结束该应用程序,则可以调用它的stop
方法。但是,假设该应用程序是恶意软件,并且无法清除其类/资源,那么我该如何强制将其垃圾回收?
如果我在主应用程序上执行简单的applications[i] = null;
,是否会迫使未清除任何资源的恶意应用程序被垃圾回收???
最佳答案
如果对应用程序的唯一引用保存在应用程序[i]中,则将需要它。但是无法预测下一个GC周期。因此,应用程序的寿命可能比预期的更长