说明SwingUtilities InvokeLater方法

时间:2019-06-19 02:52:16

标签: java multithreading user-interface invokelater swingutilities

大家好:)尝试确保我了解SwingUtilities InvokeLater方法的工作原理。到目前为止,我已经收集了以下内容:

  • 它在称为事件调度程序线程的特殊线程中运行GUI。
  • 这是通过创建一个Runnable对象来完成的,该对象包含对您的GUI的引用

我要在这里掌握的是它实际上是如何启用另一个线程来更新接口的。

据我了解,GUI的更新通常不安全。我认为这意味着如果您有两个线程A和B,并且它们都试图更改特定组件上的值(比如说进度条),则没有什么可以阻止它们同时进行更新并导致一些时髦的输出。

使用InvokeLater方法,它会创建各种队列吗?来自线程A和B的请求在哪里“保持在线”并接连执行?

由于不立即处理更新GUI的请求,而是必须排队等待直到轮到它,它是否以此名称为“稍后调用”?

谢谢大家,非常感谢。

0 个答案:

没有答案