首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪个线程运行所有AWT/swing事件处理代码?

哪个线程运行所有AWT/swing事件处理代码?
EN

Stack Overflow用户
提问于 2013-08-07 16:18:38
回答 2查看 437关注 0票数 1

我刚接触过java,有一个面试问题,问我一个研究生的角色,我不明白,所以你能告诉我哪条线和它的用途吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-07 16:19:37

Swing UI工具包是单线程的(从任何其他线程调用任何swing库都是不安全的)。所有UI事件,包括呈现和分发,都是由EDT thread完成的。

所以点击桌面上的一个按钮。操作系统向EDT发出通知,EDT接收事件,然后触发为按钮单击注册的回调函数。此外,从代码中,当您执行一些操作时(例如:重新绘制屏幕或绘制图像)。EDT将更改传递到操作系统,并在屏幕上呈现。因此出现了双向互动。

因为如前所述,Swing UI工具包是单线程的。因此,建议只调用EDT中的任何Swing库来设计System.invokeLater。更多信息,这里

票数 3
EN

Stack Overflow用户

发布于 2013-08-07 16:20:23

你在找事件调度线程

知道这件事很漂亮..。很重要。理解您的代码将在长期运行的任务上运行的线程是至关重要的,不应该在EDT上运行。相反,将这些任务分派到自己的线程上,然后在操作结束时运行回调以使用SwingUtilities更新GUI。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18108525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档