小编典典

在Java中停止线程

java

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

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


阅读 336

收藏
2020-11-26

共1个答案

小编典典

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

2020-11-26