Сначала убедитесь, что вы синхронизировали доступ к вашему ArrayList
, например, когда вы его инициализируете:
List<String> list = Collections.synchronizedList(new ArrayList<String>());
Когда вам нужно сериализовать его, возьмите копию, которая будет согласованной из-за синхронизации:
List<String> copy = new ArrayList<String>(list);
Теперь вы можете безопасно сериализовать эту копию, не блокируя доступ к первичному списку.