Java Concurrency in Practice

Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea

Книга "Java Concurrency in Practice" является исчерпывающим руководством по многопоточному программированию на Java. Авторы, включая ведущих экспертов в области concurrency, подробно рассматривают все аспекты работы с потоками: от базовых принципов синхронизации до продвинутых тем, таких как пулы потоков, неблокирующие алгоритмы и производительность.

Книга начинается с фундаментальных концепций — потоков, блокировок, атомарности и видимости. Затем переходит к практическим вопросам: как правильно проектировать потокобезопасные классы, как использовать высокоуровневые конструкции из пакета java.util.concurrent, как избегать deadlock'ов и race condition'ов.

Особое внимание уделяется тестированию многопоточного кода и анализу производительности. Авторы делятся проверенными паттернами и антипаттернами, помогая разработчикам писать надежный и масштабируемый код.

Это обязательное чтение для любого Java-разработчика, работающего с многопоточностью. Книга сочетает глубокую теорию с практическими примерами, что делает её полезной как для новичков, так и для опытных программистов.