目录
1.SynchronizedList、Vector概述
SynchronizedList:java.util.Collections中的一个静态内部类,可以通过List进行构造,用于返回线程安全的List集合
Vector:java.util包中的类,一个和ArrayList相同底层实现的线程安全的List集合
2.SynchronizedList和Vector的区别
2.1 构造机制不同
SynchronizedList:可将所有的List的子类转成线程安全的类,例如可以把ArrayList和LinkedList直接转换成SynchronizedList,而无需改变底层数据结构
Vector:底层结构固定,无法转换
2.2 扩容机制不同
SynchronizedList:如果用ArrayList构建SynchronizedList的话,那么SynchronizedList为1.5倍扩容
Vector:Vector缺省情况下2倍扩容
2.3 同步机制不同
SynchronizedList:使用同步代码块实现同步,锁定的对象为mutex(构造函数可以传入一个Object,如果在调用的时候显示的传入一个对象,那么锁定的就是用户传入的对象,反之锁定this对象)
Vector:使用同步方法实现同步,锁定this对象