使用多线程是不好的做法吗? (通过SwingWorkers)

时间:2013-05-15 18:54:53

标签: java multithreading swing garbage-collection swingworker

我的Java(Swing)应用程序在需要(例如)从Internet下载数据并同时执行某些操作时创建一个新的SwingWorker对象(想想显示加载器)。但是,监视创建的线程,这可以快速达到~100个线程。

这是不好的做法吗?如是;什么是正确的方法呢? GC不会自动清理未使用的线程吗?

1 个答案:

答案 0 :(得分:1)

是的,当你对线程数量(或者通常是资源)没有上限时,这是一个不好的做法。

在这种情况下,最好使用最多包含特定线程数的thread pool(例如25)。您可以在启动时全部创建它们,也可以根据需要懒惰地创建它们。

为池实现一个简单的请求管理器系统,它为请求者提供资源(或者在资源耗尽的情况下,对它们进行排队或者简单地拒绝它们)。

通过这种方式,最终清洁它们也很容易和明显。