executorService.submit(Runnable) 返回的未来对象是否包含对 runnable 对象的任何引用?
假设我们有以下代码:
List<Future<?>> runningTasks;
ExecutorService executor;
...
void executeTask(Runnable task){
runningTasks.add(executor.submit(task));
}
我的问题是:
- 是否包含对对象的引用?
runningTasks
task
- 它能维持多久?任务完成后,它是否仍保留它?
- 为了避免内存泄漏,我是否必须注意删除添加到列表中的未来?