java语言-容器和Map-集合(后序会删除)
面5笔5ArrayList和LinkedList是不是线程安全的,如果不是,怎么变安全?
1 、两者都不是线程安全的,如果这两个对象的内存空间被多线程共享,而会出现一个线程正在修改数值的时候,被另外一个线程读到原来的值。也就是经常说的“脏读”。
另外,ArrayList在内存不足时,会发生扩容,扩容时多线程的读写都会存在问题。
2、 变成多线程安全,有两种方案
(1)使用容易提供的同步方法Collections.synchronizedList(new LinkedList())。每次在写入的时候,锁住临界区,保证数据的一致性
(2)使用线程安全的vector等对象