为什么我需要EventQueue在JavaEDT中启动新线程?(爪哇)

为什么我需要EventQueue在JavaEDT中启动新线程?(爪哇),java,multithreading,swing,thread-safety,eventqueue,Java,Multithreading,Swing,Thread Safety,Eventqueue,我做对了吗?EDT是GUI的主线程。要开始一个长操作,最好在新线程中运行它。那么,为什么我们需要使用EventQueue来实现这一点呢?为什么我们不能像在非Swing程序中那样简单地创建和运行新线程?如果您在后台运行一个长时间运行的操作,那么没有任何说明您需要使用EventQueue。这里队列的目的是在您必须更新UI以确保长时间运行的流程已完成时使用 当流程完成时,您将在事件队列上放置某种可运行的通知,以通知UI完成 否,EDT实际上隐式地在主线程上运行。你不能“移动”EDT。相反,如果你想脱离

我做对了吗?EDT是GUI的主线程。要开始一个长操作,最好在新线程中运行它。那么,为什么我们需要使用EventQueue来实现这一点呢?为什么我们不能像在非Swing程序中那样简单地创建和运行新线程?

如果您在后台运行一个长时间运行的操作,那么没有任何说明您需要使用EventQueue。这里队列的目的是在您必须更新UI以确保长时间运行的流程已完成时使用


当流程完成时,您将在事件队列上放置某种可运行的通知,以通知UI完成

否,EDT实际上隐式地在主线程上运行。你不能“移动”EDT。相反,如果你想脱离主线程,脱离EDT,你就按照你说的去做,开始你自己的线程

看一看。这是一种常见的机制,有助于实现这一点。

另请参见。初始线程不会启动EDT,但它应该计划在EDT上创建GUI。