在Java中停止线程(Stopping Thread in Java)

2019-06-28 01:12发布

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

而在调试运行它,我可以看到,所有的线程(后取消)仍在运行,所以他们在考虑我的记忆吗? 如果是,我如何能彻底摧毁那些线程?

Answer 1:

cancel(true)调用interrupt()在你的线程,仅此而已。 所以,你需要在你处理得当run()方法。 为了您简单的情况下你的线程将完成它们的执行和他们的对象将通过GC被清除。



文章来源: Stopping Thread in Java