不积跬步,无以至千里。不积小流,无以成江海。
SynchronizedList 与 Vector 区别
1、Vector 扩容为原来的2倍长度,ArrayList 扩容为原来1.5倍。
2、SynchronizedList 有很好的扩展和兼容功能。他可以将所有的 List 的子类转成线程安全的类。
3、使用 SynchronizedList 的时候,进行遍历时要手动进行同步处理。
4、SynchronizedList 可以指定锁定的对象。
关于第三点的详细说明:
1 |
|
打开源码可以看到,Collections.synchronizedList 并没有对 Iterator
示例
1 |
|
上述示例中演示了使用线程不安全的集合可能带来的后果。尽管它不是百分百发生,但在多线程中应当使用线程安全的对象或者使用排它锁。