我应该使用两个可以相互杀死的线程吗?

时间:2010-03-19 10:55:40

标签: java architecture multithreading parallel-processing

我想要一个简单形式的窗口(单选按钮等)。用户可以进行选择并按“提交”按钮。除此之外,我想设定一些时间限制。更详细地说,用户应该看到他/她仍然有多少秒(因此,应该有一个计时器)。如果超出时间限制,程序将关闭窗口并提交“默认”选择。

据我所知,我需要为此生成2个线程。一个人将监视窗口中的用户活动(选择了哪个单选按钮等)。

另一个线程应该创建一个计时器,每秒检查剩余时间,并以某种方式将此信息放入窗口。

而且,这两个线程应该能够相互杀戮。例如,如果按下“提交”按钮,则第一个线程将终止计时器。或者如果超过时间,第二个线程(计时器)将终止第一个进程。

这是一个很好的架构吗?我需要你的意见,因为我第一次做这样的事情。

1 个答案:

答案 0 :(得分:3)

虽然有点尴尬,但两个线程可能会互相残杀。

但是,我认为你不需要两个线程。

您可以使用Swing计时器(请参阅此tutorial)来运行时钟。单击“提交”时,可以通过调用其stop()方法来停止计时器。美妙的是,Swing计时器在GUI线程上运行,因此您不会遇到并发问题。