Wiem, że można albo splice
element z tablicy, albo usunąć go z delete
. To pierwsze podejście może powodować problemy z współbieżnością, np. jeśli jeden wątek przechodzi przez macierz, podczas gdy inny właśnie się przesunie lub splicuje. delete
nie ma tego problemu, jeśli w macierzy używane jest forEach
, ponieważ forEach
przejdzie przez otwory w tablicy.Usuwanie wątków bezpiecznych
Jednak tablica nie może rosnąć wiecznie i będzie wymagać zamiatania, potencjalnie powodując taki sam problem jak w przypadku splotu. Wygląda na to, że potrzebuję blokady, ale byłbym rozbawiony, gdyby JavaScript miał do tego odpowiednie udogodnienia. jakieś pomysły?
JavaScript nie obsługuje wątków innych niż ostatnia funkcja HTML5 (i która nie pozwala na współdzielenie tablic). – Dave
Czy możesz pokazać nam przykład, w którym dwa "wątki" próbują uzyskać dostęp do tablicy w tym samym czasie? To powinno być niemożliwe przy JavaScript – Bergi
@Bergi "powinien"? –