小编vek*_*aca的帖子

如果 EDT 是一个单独的线程,为什么在这个例子中 invokeLater 等待主线程完成?

所以如果 Event Dispatch Thread 是一个独立于主线程的线程,那让我觉得下一个代码会输出

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,就好像 EDT 在运行invokeLater(..)方法内的代码块之前等待主线程完成。输出是:

Before
After
Runnable
true
Run Code Online (Sandbox Code Playgroud)

编码:

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

但是,如果我替换invokeLater(..)invokeAndWait(..),那么我得到

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

这让我觉得 EDT 并不是一个真正的独立线程,或者至少在这个例子中它的行为或只是在我看来不是。你怎么解释这个?

java swing multithreading invokelater event-dispatch-thread

3
推荐指数
1
解决办法
61
查看次数