Method.invoke是否会创建另一个执行线程?

Pra*_*nav 1 java reflection

method.invoke函数是否创建了另一个执行线程?因为当我用它来调用GUI应用程序的main方法时,invoke方法立即返回,程序和GUI应用程序同时运行.

axt*_*avt 6

没有.

您观察到的行为是由GUI库在初始化时启动事件调度线程,以及该线程执行的所有后续GUI相关工作引起的.

编辑这是一个简单的Swing GUI应用程序:

public class Test {
    public static void main(String[] args) throws Exception {
        JFrame frame = new JFrame("Hello, world!");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        System.out.println("Main method returns");
    }
}
Run Code Online (Sandbox Code Playgroud)

如果运行它,您将看到所有这些方法都是非阻塞的,因此main在设置GUI后方法立即返回,并且Event Dispatch Thread将执行进一步的工作.