如果我有这样的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);
}
}
在调试中运行它,我可以看到所有这些线程(取消后)仍然在运行,所以它们也占用了我的内存吗?如果是的话,我怎么能彻底销毁那些线程呢?
答案 0 :(得分:1)
cancel(true)
在您的帖子上调用interrupt()
,仅此而已。因此,您需要在run()
方法中正确处理它。对于你的简单情况,你的线程将完成它们的执行,它们的对象将被GC清除。