So che uno può sia splice
un elemento fuori una matrice, sia eliminarlo con delete
. Il primo approccio può causare problemi di concorrenza, ad es. se un thread sta camminando sopra l'array mentre un altro ha appena spostato o collegato. delete
non presenta questo problema se forEach
viene utilizzato nell'array, dal momento che forEach
percorrerà i fori nell'array.Eliminazioni di array sicuri per i thread
Tuttavia, l'array non può continuare a crescere per sempre e richiederà lo sweep, causando potenzialmente lo stesso problema come nel caso di una giunzione. Sembra che abbia bisogno di essere bloccato, ma sarei divertito se Javascript avesse qualche possibilità per farlo. qualche idea?
JavaScript non supporta thread, oltre a una funzionalità HTML5 recente (e che non consente la condivisione di matrici) – Dave
Puoi mostrarci un esempio in cui due "thread" stanno tentando di accedere a una matrice nello stesso momento? Dovrebbe essere impossibile con JavaScript – Bergi
@Bergi "dovrebbe"? –