课程:Swing 中的并发

原文: https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html

Examples Index

本课讨论适用于 Swing 编程的并发性。它假设您已经熟悉 Essential Classes 路径中 Concurrency 课程的内容。

仔细使用并发对 Swing 程序员来说尤为重要。一个写得很好的 Swing 程序使用并发来创建一个永远不会“冻结”的用户界面 - 无论它在做什么,程序总是响应用户交互。要创建响应式程序,程序员必须了解 Swing 框架如何使用线程。

Swing 程序员处理以下类型的线程:

  • _ 初始线程*,执行初始应用程序代码的线程。
  • _ 事件调度线程*,执行所有事件处理代码。大多数与 Swing 框架交互的代码也必须在此线程上执行。
  • _ 工作线程,也称为后台线程*,执行耗时的后台任务。

程序员不需要提供显式创建这些线程的代码:它们由运行时或 Swing 框架提供。程序员的工作是利用这些线程来创建响应式,可维护的 Swing 程序。

与在 Java 平台上运行的任何其他程序一样,Swing 程序可以使用“并发”课程中描述的工具创建其他线程和线程池。但是对于基本的 Swing 程序,这里描述的线程就足够了。

本课依次讨论三种线程中的每一种。工作线程需要最多的讨论,因为在它们上运行的任务是使用javax.swing.SwingWorker创建的。此类具有许多有用的功能,包括工作线程任务与其他线程上的任务之间的通信和协调。