先引用一段话,来自<Filthy Rich Clients>

Whenever you run a Swing application,
three threads are automatically created.

The first one is the main thread, 
which runs your application’s main method.

A second thread, called the toolkit thread,
is in charge of capturing the system events, 
like keyboard key presses or mouse movements.

Although this thread is vital, 
it is only part of AWT implementation nand never runs application code. 
Capture events are sent over to a third thread, the EDT.

-----------------------------------------------------------------------------

大意如下:
但你运行一个 Swing 的程序时,会自动创建三个线程。
第一个就是主线程,负责执行你的 main 方法
第二个叫 toolkit 线程,负责捕捉系统事件,比如键盘、鼠标移动等
虽然这个 toolkit 非常重要,但是你不会有任何代码在这个线程上执行

这个线程的作用是,把这些事件传递给第三个线程:EDT

那 EDT 是什么呢?

EDT 叫做事件指派线程(Event Dispatcher Thread)
这个线程十分重要,他负责接收来自 toolkit 线程的事件,
然后派发给对应的控件的监听器,然后对应控件的监听器中对应方法的代码就会执行了
注意,Swing 有一个单线程规范,即:
所有的界面相关的更新,都应该在 EDT 上执行
而耗时的后台运行,不应该在 EDT 上执行

一个GUI程序究竟会有几个线程?相关推荐

  1. pythongui程序,python第一个GUI程序

    第一个GUI程序 截止目前,我们的python基本语法就已经讲完了,但是python的应用确实无比之广,不同的应用领域需要学习不同的Python库,比如爬虫的urllib模块,科学计算numpy模块, ...

  2. python的GUI编程和tkinter学习笔记——第一个GUI程序

    一.第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root = Tk()btn01 = Button(root ...

  3. python怎么开发gui程序_第一个GUI程序

    Python GUI 开发有好几个第三方的库,我选择的是tkinter 最简单的一个GUI程序 import tkinter as tk//给库来个简写,用的时候简洁一点 root = tk.Tk() ...

  4. Matlab写的第一个GUI程序(程序设计,界面设计)

    写在前面:博主用的Matlab版本是2016b,属于旧版本,大概在2019版本开始属于新版本叭,新版本写程序在APP菜单有设计APP这个选项,旧版本的则是在主页的新建选项下有GUI选项 目录 1.新建 ...

  5. JAVA第一个GUI程序---计算器

    想想自己以前学过很多内容,但都是光理论不操作导致上机很少,一事无成,如今做了一个计算器的小程序练练手吧.花了两天的时间终于完成了.以后肯定要多做项目多实践! 下面是代码,写的不简洁,不规范. View ...

  6. 谁来结束 GUI 程序?| CSDN 博文精选

    作者 | dog250 责编 | 屠敏 出品 | CSDN博客 在之前使用Windows XP的时候,都会有这样的经历,即打开一大堆的窗口,在任务栏排的满满的,同样程序的不同程序还可以分组,看似很有条 ...

  7. matlab怎样编程形成软件_Matlab编程笔记之GUI程序转exe

    Matlab同样可以制作出和VC++技术一样的基于对话框的GUI界面. 在Matlab软件中编写GUI程序的方法是:命令行中输入guide,即可进入. Matlab是强大的数学建模软件,我们可以通过M ...

  8. 一个资深程序猿对Python的总结

    1.环境管理:管理 Python 版本和环境的工具. p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令 ...

  9. 将文字变成语音的GUI程序(基于百度AI开放平台)【面向过程的写法】

    尝试了用Python中tkinter写了第一个GUI程序后,便想着把原来只在控制台上玩过语音合成的程序变成可以有窗口交互的GUI程序.因为有过用VB写应用系统的经验,对窗体还是有一定的认识,所以用着老 ...

  10. linux ssh x11,使用SSH的X11 Forwarding远程执行GUI程序

    SSH的X11 Forwarding功能提供了一个非常好的方法,在你的本地主机上执行远程主机的GUI程序.比如你的开发环境可能是CentOS,你需要在CentOS下编码.但你的工作环境可能是Ubunt ...

最新文章

  1. mac -- 安装OpenCV
  2. MySQL mysqldump命令
  3. IntelliJ IDEA使用(二):tomcat和jetty配置(转自:http://www.cnblogs.com/jenkinschan/p/6052948.html)
  4. 8个爽滑如丝的Windows小软件,不好用你拿王思葱砸死我
  5. windows 11 预览版来了
  6. 这几个关乎我们一生教养的原则,每个人都应该知道。
  7. Docker教程介绍
  8. Python IDLE换行写,一行写不下,如何换行继续写
  9. typeorm_如何评价TypeORM?
  10. Spark Dataset 入门详解
  11. image 搜索docker_docker images命令-列出image
  12. Javascript常用语法 (一)
  13. 怎样写工科研究生论文
  14. 西门吹雪和他的剑——剑神和剑道
  15. 计算机设置曲线超高方法,32604007曲线外轨超高设置方法及计算公式.pdf
  16. c语言long型是什么,c语言long类型是什么意思
  17. android 横竖屏幕切换
  18. 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)
  19. (记录)华为机试练习题13—句子逆序
  20. 板材品牌之实木与生态板的比较

热门文章

  1. 数组题 倒置 加到字符串
  2. python thrift 示例
  3. .net2005底层类
  4. 神剧《切尔诺贝利》引发的技术思考:如何避免下一次核灾难?
  5. 全球最厉害的14位程序员!你知道有哪几位?
  6. 专场介绍 | 第12届中国R会议(北京)生物信息专场
  7. 【Java】 剑指offer(65) 不用加减乘除做加法
  8. [WebAPI] - 使用 Ajax 提交 HTML Form Data 到 WebAPI 的方法
  9. lab4 cache lab
  10. F2工作流引擎之 概述(一)