copyOnWrite 讀寫分離數組
//寫 public boolean add(T 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(); } } final void setArray(Object[] a) { array = a; } //讀 public E get(int index) { return get(getArray(), index); }