在多线程中释放List所占用的资源-List.removeall(List);

遍历List后,判断遍历结束,然后将List内的元素全部删除

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;


public class Test {
private final static Executor executor = Executors.newCachedThreadPool();//启用多线程
public static void main(String[] args) {
final List x=new ArrayList();
x.add("1");
x.add("2");
x.add("3");
for(int i=0;i<=3;i++){
final int j=i;
executor.execute(new Runnable() {
                 @Override
                 public void run() {
                  try{
                  System.out.println(j);
                  System.out.println(x.get(j));
                  if(j==(x.size()-1)){
                  System.out.println("h:"+x.size());
                  x.removeAll(x);
                  System.out.println("h-:"+x.size());
                  }
                  }catch(Exception e){
                 
                 
                  }
}
});
}



}


}


运行结果:

1
1
2
2
3
h:3
h-:0
3

你可能感兴趣的:(java基础)