2

如果我有这样的java代码:

public static void main(String[] args)
{
    for(int i = 0;i<100;i++)
    {
        Future<?> f = ThreadPoolManager.getInstance().schedule(new START(), 500);
        f.cancel(true);
    }
}
private class START implements Runnable
{
    @Override
    public void run()
    {
        System.out.println(1);
    }
}

并在调试中运行它,我可以看到所有这些线程(取消后)仍在运行,所以它们也占用了我的内存吗?如果是,我怎样才能完全销毁这些线程?

4

1 回答 1

1

cancel(true)调用interrupt()你的线程,仅此而已。因此,您需要在您的run()方法中正确处理它。对于您的简单情况,您的线程将完成它们的执行,并且它们的对象将被 GC 清除。

于 2012-09-08T11:15:01.170 回答