コンセプト
1. CopyOnWriteArrayList は、Java 同時実行パッケージで提供される同時コンテナです。読み取り操作用のスレッドセーフでロックフリーの ArrayList です。新しいコピーを作成します。書き込み操作の実装は、読み取りと書き込みを分離する同時実行戦略であり、「コピーオンライト」とも呼ばれます。
2. CopyOnWriteArrayList を使用すると、ロックせずに同時読み取りが可能になります。最も重要なことは、書き込み時に元の配列をコピーして新しい配列を操作しても、元の配列には影響しないため、書き込み時の読み取りには影響しないことです。全て。複数の書き込みのみが同期されます。これはデータベースの複数バージョンの同時実行メカニズムに非常に似ていると思います。
例
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(); } }
以上がJavaのCopyOnWriteArrayListの使い方は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。