- 没有。
- 没有。
- 背景线程。
如果在EDT外部运行的代码调用GUI类中定义的方法,则该代码不会在EDT上运行,而是在调用线程中运行。
如果在EDT中运行的代码调用了非GUI类中定义的代码,则该代码将在EDT上运行。
规则是,如果您不创建其他线程,则正在调用的方法将在运行调用代码的线程上运行–线程与定义方法的类不对应。
在EDT上运行的方法是 事件侦听器 ,它们是由Swing而不是您调用的。(不过,如果您是从EDT打电话给他们,它们可能仍然是。)
同样,
Runnable.run()传递给
SwingUtilities.invokeLater()和的方法内的任何代码
invokeAndWait()也可以在EDT上运行。
您从EDT调用的任何常规方法都将在EDT上运行。
在
Thread您创建的代码中调用的任何代码(无论是直接使用线程,还是直接使用
ExecutorService,或
SwingWorker.doInBackground())
都不 在EDT上。您程序的
main()方法 也不 在EDT上。



