Vector实现线程安全

synchronized(vector){

    for(int i=0; i

         System.out.println((vector.remove(i)));

   }

}

 

synchronized(vector){

    for(int i=0; i

         System.out.println((vector.get(i)));

   }

}

Vector的get() 、remove()、size()方法都是同步的,但是在多线程环境下,如果不在方法调用端做额外的同步措施,使用这段代码仍然是不安全的。

如果一个线程恰好删除一个元素,导致序号i 已不可再用,get()方法就会抛出一个ArrayIndexOutOfBoundsException 。

你可能感兴趣的:(Vector,线程安全)