【发布时间】:2011-09-12 04:23:50
【问题描述】:
我的 java 项目中有一个 swingworker。 我使用netbean“分析器”来监视线程。 我不知道为什么 Swingworker 线程仍然存在于 NetBeans 的分析器的监视器中,并且它处于“等待”状态。换句话说,如果我点击按钮 b 10 次,就有 10 个 swingworker 线程! 谢谢。
public static void main(String[] args) {
// TODO code application logic here
final JFrame f = new JFrame();
f.setLayout(new BorderLayout());
f.setSize(400, 400);
b = new JButton("B1");
f.add(b,BorderLayout.CENTER);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
return null;
}
}.execute();
}
});
f.setVisible(true);
}
【问题讨论】:
-
“不处置”是什么意思?那它不是GC'd?如果是这样,我认为我们无法完全控制这一点。您能否发布一个非常小的可编译、可运行的示例程序来演示该问题,SSCCE?
-
我不知道为什么 Thread 还处于等待状态,但我相信 SwingWorker 线程池中的线程不能超过 10 个。也许线程只是坐在池中等待在需要时再次使用(或者更好地说,“在池中涉水”?;))。
标签: java multithreading swing swingworker