https://ru.wikipedia.org/wiki/Параллелизм_в_Java
https://en.wikipedia.org/wiki/Java_concurrency
«Потоками можно управлять либо напрямую, либо посредством абстрактных механизмов, таких как Executor и коллекции из пакета java.util.concurrent»
Слово "демоны" в Java не то же самое, что демоны в Linux. Потоки демоны это как background threads в C#.
JSR 133 - про мониторы и сброс кеша процессора.
JSR 166 - пакет concurrency
(странно, что concurrency это не такое же слово, как concurrent из названия пакета java.util.concurrent )
Ну и там ссылки на статьи и книги снизу.
Тут я не вижу трёх вещей, про которые я слышал, но не знаю:
1) есть какой-то механизм компилятора для распараллеливания обработки массивов
2) есть сами коллекции, синхронизированные
3) есть специальные реализации коллекций, которые не требуют блокировок (как-то они там гарантируют продвижение прогресса за счёт атомарных операций)