本文共 315 字,大约阅读时间需要 1 分钟。
List接口的两个实现,ArrayList和vector。vetor同步锁synchronized 关键字,
举例: ArrayList ,在添加一个元素的时候,分两步完成: 1. 在 Items[Size] 的位置存放此元素 2. 增大 Size 的值。 在多线程情况下,比如有两个线程,线程 A 先将元素存放在位置 0。此时 CPU 调度线程A暂停,线程 B 得到运行的机会。线程B也向此 ArrayList 添加元素,因为此时 Size 仍然等于 0 ,所以线程B也将元素存放在位置0。然后线程A和线程B都继续运行,都增加 Size 的值。 元素只有一个,存放在位置 0,而 Size 却等于 2。这就是“线程不安全”了 。转载地址:http://pvazi.baihongyu.com/