method.invoke函数是否创建了另一个执行线程?因为当我用它来调用GUI应用程序的main方法时,invoke方法立即返回,程序和GUI应用程序同时运行.
没有.
您观察到的行为是由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将执行进一步的工作.