Java дайджест #3. Concurrency
Данный дайджест, по возможности, не затрагивает общие вопросы по concurrency и больше сконцентрирован в контексте Java-платформы.
Общие вопросы
Если кто еще не слышал, то The Free Lunch Is Over.
Поэтому хорошо бы ознакомится хотя бы поверхностно с тем, как работает система ниже JVM. Как вариант — можно взять книгу Таненбаума «Современные операционные системы». Если есть те, кому совсем нечем заняться, то можно немного почитать про cache coherency, можно прочитать побольше про memory consistency and cache coherence.
Java Concurrency
Для начинающих
A Lazy Developers Introduction to Java Concurrency Executors. Таки для ленивых.
Java Concurrency / Multithreading Tutorial и Java Concurrency Utilities. Неплохие туториалы, но мне показалось, что они больше для начинающих.
Для тех, кто поленился почитать Таненбаума, небольшой туториал про Семафоры. В статье есть ссылки на другие примитивы concurrency, такие как CountDownLatch, ReentrantLock и тд.
Для всех (книги)
Java Concurrency in Practice — это классика. Обязательна к прочтению.
Programming Concurrency on the JVM от Venkat Subramaniam.
Для всех (ресурсы)
Concurrency-interest — мейлинг лист, название говорит само за себя.
>рабочие заметки. Интересный русскоязычный блог, содержит много хардкора.
Psychosomatic, Lobotomy, Saw. Интересный англоязычный блог, содержит еще больше хардкора.
Для всех (остальное)
#когдаужепочинятdoublecheckedlocking интересная статья от Aleksey Shipilёv про публикацию ссылок на объекты.
ForkJoinPool в Java 8 от все того же Aleksey Shipilёv.
А еще в Java 8 появились параллельные стримы, но это не отменяет необходимость думать (хоть и существует готовое решение).
Akka — фреймворк на моделе акторов, документация по его Java API. И статья с неимоверным количеством базз-вордов.
GPars — concurrency-фреймворк с Groovy налетом. И как с ним работать из Java.
Статья от Martin Fowler про архитектуру LMAX и Disruptor. Сайт проекта на github содержит интересные ссылки. И видео с разбором того, что в нем есть. Все же надо понимать, что штука довольно специфичная и, скорее всего, вам будет достаточно ArrayBlockingQueue из java.util.concurrent.
Java Memory Model
В этом году с JMM связано уже немало выступлений и материалов. Учитывая JEP 188, можно предположить, что тема и дальше будет очень популярной.
FAQ по JSR 133. Начало 2004 года, но все еще есть много интересного, правда, с того времени по кускам разъехалось по массе книг и ресурсов.
Java Memory Model Pragmatics — транскрипция доклада Aleksey Shipilёv. И видео доклада. Лучше сначала посмотреть видео, потом почитать текст. Повторять до наступления просветления.
Что «под капотом» у многопоточности Java. Не совсем про JMM, но кому-то может помочь прояснить какие-то моменты. А может и не прояснить.
P.S. Предложения, пожелания по темам для новых выпусков и в общем по выпускам принимаются.
P.P.S. Есть идея сделать дайджест более новостным, но поскольку в мире Java ничего не происходит Java — очень стабильная платформа, то буду благодарен за любые интересные материалы. Присылайте.
← Предыдущий выпуск: Java дайджест #2
Cледующий выпуск: Java дайджест #4 →
14 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.