当前位置: 首页 > 面试题库 >

为什么使用invokeLater很重要?

柳韬
2023-03-14
问题内容

我最近找到了一个示例代码:

public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}

createAndShowGUI()方法将打开一个用户界面窗口。然后,我尝试将代码修剪如下:

public static void main(String[] args) {
    createAndShowGUI();
}

两种版本均能正常工作。有什么区别?


问题答案:

任何一种代码都能在99%的时间内工作。

但是,Swing的设计使得对Swing组件的所有更新都应在事件分发线程(EDT)上完成。阅读有关并发的Swing教程以获取更多信息。

问题是它有1%的时间可能无法正常工作。您不想浪费时间尝试调试随机问题。



 类似资料:
  • 为了尽快获得一个可以高效使用的工作软件系统,不仅需要为开发做计划,还需要为文档,部署,市场做计划。在一个商业工程里,这还需要销售和金融计划。没有对开发时间的预测能力,是不可能高效预测以上这些东西的。 好的估计提供了预测能力。管理者喜欢,而且应该这么做。事实是这不可能,不论是理论上还是实践上,准确预测开发软件所消耗的时间总是被管理者所忽视。我们总是被要求做那些不可能的事情,而且我们必须诚实地面对它。

  • 本文向大家介绍为什么Kafka技术很重要?相关面试题,主要包含被问及为什么Kafka技术很重要?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka有一些优点,因此使用起来很重要: 高吞吐量:我们在Kafka中不需要任何大型硬件,因为它能够处理高速和大容量数据。此外,它还可以支持每秒数千条消息的消息吞吐量。 低延迟:Kafka可以轻松处理这些消息,具有毫秒级的极低延迟,这是大多数新用例所要求

  • 问题内容: 我刚刚遇到了这个“错误”,但是我不确定这是否是故意的:代码: 在第一个示例中,它是在swing线程上执行的,但在第二个示例中,它不是,尽管我认为应该这样做。 这是错误还是故意的? 问题答案: 在我看来,这似乎是您的误解 第一行就像在说:“好吧,秋千,我想要你做的是”。所以Swing执行它 第二行就像是说:“确定,Swing,我要您执行的是方法返回的对象的方法”。一个是方法, 我现在执行

  • 问题内容: 我认为Maven依赖关系的顺序之前无关紧要,并认为这是它的一个优点。这是我以前的依赖项: 它运作良好,今天我要把对弹簧的依赖移到最底层,以便与那些球衣相关的东西可以在一起。但是后来我再也无法正常工作了,我的码头抱怨道: 那真的很令人困惑,所以我是否需要考虑依赖顺序?我怎么知道正确的顺序? 问题答案: 依赖关系的顺序确实很重要,因为从2.0.9版开始,Maven如何解决传递依赖关系。文档

  • 我确实读过这篇文章:https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/ 设置一些上下文:这篇文章是关于容器中的僵尸问题的,它试图说服我们这是一个真正的问题。 总的来说,我有复杂的感觉。为什么这很重要?毕竟,即使是在conainer主机操作系统中的僵尸能够释放/杀死这个僵尸的情况下。我们知道容

  • 引用文档: 创建索引时,与键关联的数字指定索引的方向,因此它应该始终为1(升序)或-1(降序)。对于单键索引或随机访问检索,方向无关紧要,但如果您对复合索引进行排序或范围查询,方向很重要。 然而,我看不出为什么指数的方向对复合指数有什么影响。有人能提供进一步的解释(或示例)吗?