我什么都无法工作,所以我想出了以下解决方案。这是一个大概的概述:我在ThreadPoolExecutor中创建了一个数组,该数组跟踪队列中的可运行对象。然后,当我需要取消队列时,我遍历并在每个可运行对象上调用了cancel方法。就我而言,所有这些可运行对象都是我创建的自定义类,它们的cancel方法只是设置了canceled标志。当队列提出下一个要处理的队列时,在运行该可运行对象时,它将看到已取消并跳过了实际工作。
因此,所有可运行的对象都会被取消,很快就被一个接一个地快速清除。
可能不是最好的解决方案,但它对我有用,并且不会泄漏内存。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)