这里写目录标题

背景

ArrayList 这个集合本来就是线程不安全的,当我们多线程跑数据,往ArrayList里面添加数据的时候,前面的数据有可能被覆盖,为了解决这个问题,我们使用
synchronized关键字。现在我们还可以在不使用关键字的情况下往集合里面添加数据,并且数据是安全的,我们就可以使用CopyOnWriteArrayList这个数组

JDK1.5引入的J.U.C包中,又实现了一个线程安全版的ArrayList——CopyOnWriteArrayList。

代码实现

public class JUC {
   

    public static void main(String[] args) {
   
        CopyOnWriteArrayList<String> strings = new CopyOnWriteArrayList<>();

        for(int i=0;i<10000;i++){
   
            new Thread(() -> {
   

                    strings.add(Thread.currentThread().getName());

            }).start();
        }
        try {
   
            Thread.sleep(Long.parseLong("3000"));
        } catch (InterruptedException e) {
   
            e.printStackTrace();
        }
        System.out.println(strings.size());
    }
}