java - EventQueue.invokeLater 与 Thread.start

标签 java multithreading swing

对于 Swing 应用程序,我们使用 EventQueue.invokeLater() 是否有原因? Thread.start() 不应该以同样的方式工作吗?

Thread.start 的另一个优点是我们有一种方法告诉线程中断,因为 EventQueue.invokeLater 没有为我们提供 Thread 对象。

最佳答案

您应该使用 EventQueue.invokeLater 进行所有 GUI 更新,因为 Swing 在某种程度上是单线程的。请参阅http://docs.oracle.com/javase/6/docs/api/javax/swing/package-summary.html#threading

您可以启动线程进行计算等,但应使用invokeLater 更新GUI。

关于java - EventQueue.invokeLater 与 Thread.start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271351/

相关文章:

Java集合/映射应用方法等效?

java - 应用级线程池和tomcat

java - 动态添加和隐藏 JLayeredPane

java - FutureTask 和 HttpSession 同步

multithreading - 为什么阻塞系统调用会阻塞用户级线程的整个过程?

java - 如何在 catch block 中进行 swing 调用

java - JTextPane : How do you update it after adding it to a layout?

java - 在一行中显示 2 个或更多 TextView

java - 如何连接 2 Java Map<String, Object> 与相同的键而不覆盖

java - 如何编写服务器端 java 代码以使用 JAX-RS(Jersey) 以流形式返回任何类型的文件?