【问题标题】:Should I use two threads which can kill each other?我应该使用两个可以互相杀死的线程吗?
【发布时间】:2010-03-19 10:55:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java architecture multithreading parallel-processing


    【解决方案1】:

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

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

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

    【讨论】:

    • +1 JOKE:就像在现实生活中一样,当同一物种的两个东西试图互相残杀时,它总是会变得一团糟……最好让上帝(或在这种情况下是一个计时器)做那种事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2013-11-04
    • 2011-12-12
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多