在我的方法中,我必须调用另一个返回未来的方法(AnotherMethod
)。
例如
private static void myMethod() {
Future<MyObj> mjObj = AnotherMethod();
return;
}
我实际上并不关心AnotherMethod
返回的值(例如myObj
的值),但是我确实希望AnotherMethod
能够完全运行。
如果我放弃对将来的引用(如上例所示),AnotherMethod
仍将继续运行吗?
我知道它不会在从myMethod
返回之前完成,但是即使不再引用myObj
了,它还会在某个时候完成吗?
答案 0 :(得分:2)
首先,始终会从头到尾执行AnotherMethod,因为您会调用它。至于并发性,如果AnotherMethod启动线程或将任务提交给执行者,那么并发执行将不会被中断。垃圾收集器不会中断线程,因为它们是GC根-JVM中的顶级对象。