在Java中停止线程

时间:2012-09-08 10:45:04

标签: java multithreading runnable

如果我有这样的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);
    }
}

在调试中运行它,我可以看到所有这些线程(取消后)仍然在运行,所以它们也占用了我的内存吗?如果是的话,我怎么能彻底销毁那些线程呢?

1 个答案:

答案 0 :(得分:1)

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