试题
考点

java语言-容器和Map-集合(后序会删除)

面5笔5

ArrayList和LinkedList是不是线程安全的,如果不是,怎么变安全?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

1 、两者都不是线程安全的,如果这两个对象的内存空间被多线程共享,而会出现一个线程正在修改数值的时候,被另外一个线程读到原来的值。也就是经常说的“脏读”。

另外,ArrayList在内存不足时,会发生扩容,扩容时多线程的读写都会存在问题。


2、 变成多线程安全,有两种方案

(1)使用容易提供的同步方法Collections.synchronizedList(new LinkedList())。每次在写入的时候,锁住临界区,保证数据的一致性

(2)使用线程安全的vector等对象

评论

雪影红双

2020-10-19 10:48:00

0 0

加载更多