Я бы посоветовал Java Concurrency in Practice. Она хоть и не слишком новая, но пожалуй ничего принципиально лучше по многопоточности все еще не написано.
Она детальнее, более академична и чуть более сложна для восприятия из-за стиля изложения. Вот тут вскользь упомянуты сложности восприятия примеров из книги. Java Concurrency in Practice все-же ближе к практике и больше подходит для введения.
Programming Concurrency on the JVM — тут все же немного другие темы. Сложно сказать, лучше это или хуже. Но все-таки, STM или Akka — это не про JDK, это более широкий взгляд на вещи. Вероятно будет хороша как дополнение.
Ну тут как-бы про интервью на Java разработчика говорили. Мне кажется, если у вас на подобном интервью спросят такие вещи — то вы устраиваетесь в Оракл пилить Java runtime :) Обычный разработчик без этого проживет, хотя знание — оно конечно не помешает никогда.
Ну, когда спросят, что такое volitale, — надо понимать как это устроена в java. Что в java реализован надежный с точки зрения программирования механизм, но далеко не самый быстрый, потому что всегда обеспечивается полная когерентность кэша, что далеко не всегда нужно. Поэтому high performance и low latency в понимании java отличается от традиционного.
Коротко и просто.
Мне сейчас как «не java разработчику», который изучал/изучает java, было интересно сравнить/оценить свои знания пробегая по перечню.
Спасибо!
План подготовки к собеседованию на позицию Java разработчика