# 问题与练习：Swing 中的并发

> 原文： [https://docs.oracle.com/javase/tutorial/uiswing/QandE/questions-concurrency.html](https://docs.oracle.com/javase/tutorial/uiswing/QandE/questions-concurrency.html)

## 问题

1.  对于以下每个任务，请指定应执行的线程以及原因。
    *   初始化 GUI。
    *   加载大文件。
    *   调用 [`javax.swing.JComponent.setFont`](https://docs.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#setFont-java.awt.Font-) 来更改组件的字体。
    *   调用 [`javax.swing.text.JTextComponent.setText`](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setText-java.lang.String-) 来更改组件的文本。
2.  一组线程不用于上一个问题中提到的任何任务。命名此线程并解释其应用程序如此受限的原因。
3.  `SwingWorker`有两个类型参数。解释如何使用这些类型参数，以及为什么它们通常无关紧要。

## 演习

1.  修改 [``Flipper``](../examples/concurrency/FlipperProject/src/concurrency/Flipper.java)示例，使其在“硬币翻转”之间暂停 5 秒。如果用户单击“取消”，则硬币翻转循环立即终止。

[检查你的答案。](answers-concurrency.html)