首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券