1

我的问题实际上由两部分组成。第一个问题是在使用 java Method 类从加载的类中调用方法时必须做的。这个“调用”方法是否在单独的线程中运行?如果是这样,您可以访问它吗?

其次,考虑我使用invoke 从加载的类中调用方法的情况。假设方法调用 System.exit()。如果我使用安全管理器来阻止 System.exit() 调用的发生,并且父程序捕获安全管理器异常,那么子线程是否会被正确地垃圾收集?

4

1 回答 1

1

这个“调用”方法是否在单独的线程中运行?

不,Java 反射通常与多线程无关。

子线程会被正确地垃圾收集吗?

由于不涉及多线程,我相信您的第二个问题没有实际意义。但是,更一般地说,线程之间没有异常传播,因此如果子线程由于未处理的异常而结束,父线程将无法神奇地“捕获”它。从逻辑上考虑:此时父线程将关闭一些完全不相关的代码,并且用与它正在执行的内容无关的堆栈跟踪来中断它是没有意义的。

于 2013-05-13T20:33:30.490 回答