Ho molta confusione su Java CopyOnWriteArrayist . Lo so, quando abbiamo una modifica su di esso come l'aggiornamento, l'inserimento del set, bloccherà l'intera lista, copierà una copia totale della lista delle fonti, eseguirà la modifica e quindi rilascerà il blocco. Quindi, la mia domanda è:
-
Quando si effettua la modifica, perché non possiamo semplicemente bloccare l'array, fare la modifica e infine rilasciare il blocco? Perché dobbiamo creare una nuova copia dell'array?
-
Il blocco scrittura è efficace solo per una modifica simultanea, ma non per una modifica e una lettura. Quando facciamo una lettura, leggiamo dal vecchio array e recuperiamo i vecchi dati, giusto?