替代小任务的线程而不冻结GUI

时间:2011-01-25 18:21:25

标签: java

我正在编写一个由gui和几个按钮组成的小应用程序。当用户点击其中一个时,程序必须下载一个网页,进行几个匹配并将值返回给gui。 问题是,每次用户点击该按钮时我都必须开始一个新的线程,或者对于那些小任务(主要是从网上下载内容)有线程的替代方案吗?

2 个答案:

答案 0 :(得分:3)

您总是必须使用不同的线程。现在你如何使用这些不同的线程可以取决于你。查看producer/consumer方法,其中只有一个空闲线程在后台等待工作排队。这似乎很适合你的工作。您应该尽可能使用SwingWorker,因为它有助于进行大量的GUI更新和刷新。最后,查看java.concurrency包,因为它非常有用。现在几天,我认为没有任何理由在没有使用一些为您完成所有锁定和线程的库的情况下手动启动线程。

答案 1 :(得分:0)

如果您希望该调用是异步的,则别无选择。

但是,如果您能够让用户等到下载完成并处理完毕,则无需线程。

相关问题