首页
学习
活动
专区
圈层
工具
发布

JUC:CopyOnWriteArrayList

public class Thread07 {

public static void main(String[] args) {

// 并发修改异常ConcurrentModificationException

// List list = new ArrayList();

// 写入时复制、多个线程调用的时候、在写入的时候避免覆盖、造成数据丢失、读写分离

List list = new CopyOnWriteArrayList();

for (int i = 0; i < 10; i++) {

new Thread(()->{

list.add(UUID.randomUUID().toString().substring(0,3));

},String.valueOf(i)).start();

}

// 底层源码:

//        public boolean add(E e) {

//            final ReentrantLock lock = this.lock;

//            lock.lock();

//            try {

//                Object[] elements = getArray();

//                int len = elements.length;

//                Object[] newElements = Arrays.copyOf(elements, len + 1);

//                newElements[len] = e;

//                setArray(newElements);

//                return true;

//            } finally {

//                lock.unlock();

}

}

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OT1E3aoWekg1tM-H6aNtRAnQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券