Używam ThreadSafeList i otrzymuję z tego wiele kilometrów, aby przesyłać strumieniowo dane z procesu do serwera internetowego, a następnie przesyłać strumieniowo dane z powrotem do klienta. W pamięci zapisuję dane w JVM z buforowaniem sprężynowym (ehcache pod maską) i wszystko jest w porządku. Kłopoty zaczęły się, gdy zacząłem uderzać w granice sterty, a Spring Caching zaczął serializować moją listę ThreadSafeList na dysk podczas jej używania, powodując ConcurrentModificationExceptions. Czy mogę nadpisać prywatne metody writeObject i readObject interfejsu Serialization, aby rozwiązać problem? Nie jestem pewien, jak to zrobić, czy powinienem zrezygnować z mojej listy ThreadSafeList.Jak utworzyć listę wątków bezpiecznych do serializacji?
Po uruchomieniu tego programu korzystałem z BlockingDeque, ale nie było to wystarczające, ponieważ kiedy wstawiłem i wziąłem strukturę, nie mogłem zapamiętać danych do buforowania ... Nie mogę użyć ConcurrentMap ponieważ potrzebuję zamawiania na mojej liście ... czy powinienem wybrać ConcurrentNavigableMap? Czuję się jak toczenia własne z ThreadSafeList i niestandardowe funkcje serializacji prywatnych może być marnotrawstwem?
Java Code Geeks ThreadSafeList
Buforowanie wiosenne nie pomaga, jeśli znajdziesz przyczynę problemu. –