首页
学习
活动
专区
工具
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元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com