Конкурентность в Java: Многопоточность, параллелизм и асинхронность на практике — Алексей Соколов — обложка книги
300 страниц
Java
PDF
4.5

Конкурентность в Java: Многопоточность, параллелизм и асинхронность на практике

Полное руководство по построению быстрых и отказоустойчивых многопоточных приложений

Автор:

Год:

Краткое содержимое:

Современные приложения обязаны быть быстрыми и отзывчивыми. Но написание корректного многопоточного кода — одна из самых сложных задач в программировании. Гонки данных, взаимные блокировки, проблемы видимости и производительности подстерегают разработчика на каждом шагу. Книга «Конкурентность в Java» — это практическое руководство, которое поможет вам освоить все аспекты параллельного программирования на Java: от классических низкоуровневых средств до современных высокоуровневых абстракций и экспериментальных возможностей Project Loom.

О чём эта книга?

Книга построена по принципу «от простого к сложному». Вы начнёте с основ: что такое поток (Thread), как его создать и запустить, какие проблемы возникают при работе с разделяемыми данными. Затем погрузитесь в мир синхронизации: synchronized, volatile, java.util.concurrent.locks и атомарные классы. Далее вы изучите пулы потоков (ExecutorService, ForkJoinPool), научитесь эффективно управлять задачами и избегать «утечки потоков». Отдельные главы посвящены:

  • CompletableFuture и асинхронному программированию — построению неблокирующих конвейеров обработки данных.
  • Стримам и параллельным коллекциям — безопасному использованию Stream.parallel() и ConcurrentHashMap.
  • Тестированию многопоточного кода — утилитам, паттернам (Awaitility, Thread Weaver) и типичным ошибкам.
  • Project Loom (виртуальные потоки) — новому подходу к конкурентности, который обещает упростить написание масштабируемых серверных приложений.

Для кого эта книга?

Издание будет полезно:

  • Junior-разработчикам, которые уже знакомы с синтаксисом Java и хотят понять, как работает многопоточность.
  • Middle-разработчикам, которые сталкиваются с багами в production и хотят систематизировать знания.
  • Архитекторам и Team Lead'ам, принимающим решения о выборе модели конкурентности для высоконагруженных систем.

Что вы узнаете?

После прочтения вы сможете:

  • Грамотно проектировать многопоточные архитектуры, избегая deadlock'ов и race condition.
  • Выбирать правильный инструмент для задачи: от ReentrantLock до Phaser и CompletableFuture.
  • Настраивать пулы потоков под конкретные сценарии (CPU-bound, I/O-bound).
  • Писать безопасные и тестируемые параллельные алгоритмы.
  • Понимать внутреннее устройство JVM и JMM (Java Memory Model) на уровне, достаточном для отладки сложных проблем.

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

«Конкурентность в Java» — это не просто справочник, а настольное руководство, к которому вы будете возвращаться снова и снова, проектируя производительные и надёжные Java-приложения.

Рекомендаций