ArrayList,HashSet,HashMap都是线程非安全的,在多线程环境下,会导致线程安全问题,所以在使用的时候需要进行同步,这无疑增加了程序开发的难度。所以JAVA提供了同步容器。...但是,Vector并不是线程安全的。
Stack也是一个同步容器,也是使用synchronized进行同步,继承与Vector,是数据结构中的,先进后出。...HashTable和HashMap很相似,但HashTable进行了同步处理。
Collections工具类提供了大量的方法,比如对集合的排序、查找等常用的操作。...(Thread.java:748)
原因分析
Vector是线程同步容器,size(),get(),remove()都是被synchronized修饰的,为什么会有线程安全问题呢?...总结
同步容器采用synchronized进行同步,因此执行的性能会受到影响,并且同步容器也并不一定会做到线程安全。
[wx.jpg]