因为官方在涉及线程不安全的操作上都加了synchronized关键字,相当于加了一把锁;
这种线程安全不是绝对的,因为这种方式是方法级的,添加和删除的方法还是可以同时进行,可能存在添加时,找到了数组下标,但是进行添加时,数组下标已经被删除了,此时会有数组越界异常;
所以使用Vector做复杂操作的时候,还是需要手动枷锁,即在自己的程序中进行控制,这时候应该使用ArrayList,这样可以避免Vector自身重复加锁,影响效率。
因为官方在涉及线程不安全的操作上都加了synchronized关键字,相当于加了一把锁;
这种线程安全不是绝对的,因为这种方式是方法级的,添加和删除的方法还是可以同时进行,可能存在添加时,找到了数组下标,但是进行添加时,数组下标已经被删除了,此时会有数组越界异常;
所以使用Vector做复杂操作的时候,还是需要手动枷锁,即在自己的程序中进行控制,这时候应该使用ArrayList,这样可以避免Vector自身重复加锁,影响效率。