JUC对于集合的支持
public boolean add(E e) {  final ReentrantLock lock = this.lock;  //注意这里,基于ReentrantLock  lock.lock();  try {  Object[] elements = getArray();  int len = elements.length;  //数字copy  Object[] newElements = Arrays.copyOf(elements, len + 1);  newElements[len] = e;  setArray(newElements);  return true;  } finally {  lock.unlock();  }  }
public boolean offer(E e) {  checkNotNull(e);  final NodenewNode = new Node(e);  for (Nodet = tail, p = t;;) {  Nodeq = p.next;  if (q == null) {  //注意这里,通过CAS新增节点  if (p.casNext(null, newNode)) {  if (p != t) // hop two nodes at a time  casTail(t, newNode); // Failure is OK.  return true;  }  }  else if (p == q)  p = (t != (t = tail)) ? t : head;  else  p = (p != t && t != (t = tail)) ? t : q;  }  }
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者