ArrayList,HashSet,HashMap都是线程非安全的,在多线程环境下,会导致线程安全问题,所以在使用的时候需要进行同步,这无疑增加了程序开发的难度。所以JAVA提供了同步容器。...但是,Vector并不是线程安全的。
Stack也是一个同步容器,也是使用synchronized进行同步,继承与Vector,是数据结构中的,先进后出。...(Thread.java:748)
原因分析
Vector是线程同步容器,size(),get(),remove()都是被synchronized修饰的,为什么会有线程安全问题呢?...同步容器虽然是线程安全的,但是不代表在任何环境下都是线程安全的。
HashTable
线程安全,key,value都不能为null。在修改数据时锁住整个HashTable,效率低下。...总结
同步容器采用synchronized进行同步,因此执行的性能会受到影响,并且同步容器也并不一定会做到线程安全。
[wx.jpg]