Правильное синхронизирование доступа к LinkedList в многопоточных приложениях важно, потому что без дополнительной синхронизации состояние списка может стать непредсказуемым. 1
Это связано с тем, что LinkedList не синхронизирован, и если несколько потоков обращаются к нему одновременно и хотя бы один из потоков изменяет структуру списка, он должен быть синхронизирован извне. 2 (Структурная модификация — это любая операция, которая добавляет или удаляет один или несколько элементов). 2
Также без надлежащей синхронизации существует вероятность, что один из записывающих потоков не сбросил изменения для структур данных списка в локальной кэш-памяти или регистрах, или один из считывающих потоков имеет устаревшее состояние списка в своём кэше или регистрах. 2
Для потокобезопасной реализации LinkedList можно использовать метод Collections.synchronizedList. 14