【问题标题】:Swing Toolkit and multithreadingSwing 工具包和多线程
【发布时间】:2011-07-26 19:41:02
【问题描述】:

据说“Swing 工具包不是多线程安全的?

这句话是什么意思?

【问题讨论】:

标签: java multithreading swing


【解决方案1】:

查看此链接:http://www.jguru.com/faq/view.jsp?EID=131370

所以为了简化实现 Swing 库,他们选择它不是 线程安全。论据是 大多数与 GUI 相关的工作都会发生 在来自 GUI 的回调中 发生在单个 GUI 线程上 无论如何。授予 - 长期运行 用户必须做更多的任务 如果他/她想做就工作 多线程活动...

特别是为 jfc 提供的链接。

还有这个链接:http://www.it.uu.se/edu/course/homepage/devgui/vt03/out/ThreadsAndSwing.pdf

在 Swing 组件被 显示在屏幕上,它们应该 只能由 事件处理线程。这 事件处理线程(或只是事件 线程)由自动启动 Java VM 当应用程序具有 图形界面。事件线程 调用诸如paint()之类的方法 组件,actionPerformed() on ActionListener 和所有其他 事件处理方法


添加

查看我给出的第二个链接,特别是以下部分:GUI 设置中对工作线程的需求(也有一个解释它的示例)。在此引用以供参考:

事件线程起着至关重要的作用 在具有图形的应用程序中 界面。将执行的代码 由事件处理线程应该是 相对简短且无阻塞。如果 事件处理线程被阻塞 在一段代码中一段时间​​,没有 可以处理其他事件!

【讨论】:

  • @Favonius 为什么在使用 swing 时我们不应该在一个事件中处理长时间运行的任务?
  • @Suhail Gupta:我已经更新了我的答案。请检查一下。另请查看@andersoj 针对您的问题提供的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多