Java Concurrency на практике, Гетц Брайан, Пайерлс Тим, Блох Джошуа, Боубер Джозеф, Холмс Дэвид, Ли Даг, 2020.
Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры — это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания .любого высокопроизводительного приложения. Улучшенная виртуальная машина Java, поддержка высокопроизводительных классов и богатый набор строительных блоков для задач распараллеливания стали в свое время прорывом в разработке параллельных приложений. В «Java Concurrency на практике» сами создатели прорывной технологии объясняют не только принципы работы, но и рассказывают о паттернах проектирования. Легко создать конкурентную программу, которая вроде бы будет работать. Однако разработка, тестирование и отладка многопоточных программ доставляют много проблем. Код перестает работать именно тогда, как это важнее всего: при большой нагрузке. В «Java Concurrency на практике» вы найдете как теорию, так и конкретные методы создания надежных, масштабируемых и поддерживаемых параллельных приложений. Авторы не предлагают перечень API и механизмов параллелизма, они знакомят с правилами проектирования, паттернами и моделями, которые не зависят от версии Java и на протяжении многих лет остаются актуальными и эффективными.
Потоки есть везде.
Даже если ваша программа не создает поток явно, структуры могут создавать потоки от вашего имени, и код, вызываемый из этих потоков, должен быть потокобезопасным. Это добавляет разработчикам проблем.
JVM-машина при запуске создает потоки для служебных задач (например, сбора мусора) и главный моток для работы метода main. Инструментальный пакет AWT (Abstract Window Toolkit) и платформа программирования пользовательского интерфейса Swing создают потоки для управления событиями пользовательского интерфейса. Класс Timer создает потоки для выполнения отложенных задач. Компонентные структуры создают пулы (или пучки) потоков и активируют в них компонентные методы.
Мы понимаем, что воспринимать конкурентность как необязательный расширенный функционал языка очень удобно, но реальность такова, что почти все приложения Java являются многопоточными, и имеющиеся структуры не избавляют вас от необходимости правильно координировать доступ к состоянию приложения.
ОГЛАВЛЕНИЕ.
Отзывы.
Листинги.
Предисловие.
Как пользоваться книгой.
Примеры исходного кода.
Благодарности.
От издательства.
Глава 1. Введение.
ЧАСТЬ I. ОСНОВЫ.
Глава 2. Потокобезопасность.
Глава 3. Совместное использование объектов.
Глава 4. Компоновка объектов.
Глава 5. Строительные блоки.
ЧАСТЬ II. СТРУКТУРИРОВАНИЕ КОНКУРЕНТНЫХ ПРИЛОЖЕНИЙ.
Глава 6. Выполнение задач.
Глава 7. Отмена и выключение.
Глава 8. Применение пулов потоков.
Глава 9. Приложения с GUI.
ЧАСТЬ III. ЖИЗНЕСПОСОБНОСТЬ, ПРОИЗВОДИТЕЛЬНОСТЬ И ТЕСТИРОВАНИЕ.
Глава 10. Предотвращение сбоев жизнеспособности.
Глава 11. Производительность и масштабирование.
Глава 12. Тестирование конкурентных программ.
ЧАСТЬ IV. ПРОДВИНУТЫЕ ТЕМЫ.
Глава 13. Явные замки.
Глава 14. Построение настраиваемых синхронизаторов.
Глава 15. Атомарные переменные и неблокирующая синхронизация.
Глава 16. Модель памяти Java.
ПРИЛОЖЕНИЕ А. АННОТАЦИИ ДЛЯ КОНКУРЕНТНОСТИ.
A.1. Аннотации классов.
A.2. Аннотации полей и методов.
Библиография.
Купить .
Теги: учебник по программированию :: программирование :: Гетц Брайан :: Пайерлс Тим :: Блох Джошуа :: Боубер Джозеф :: Холмс Дэвид :: Ли Даг
Смотрите также учебники, книги и учебные материалы:
- Классические задачи Computer Science на языке Python, Копец Д., 2020
- Карьера программиста, Лакман М.Г., 2020
- Python, Искусственный интеллект, большие данные и облачные вычисления, Дейтел П., Дейтел Х., 2020
- Гид по Computer Science для каждого программиста, Спрингер В., 2020
- Swift, Основы разработки приложений под iOS, iPadOS и macOS, Усов В., 2021
- Swift, Основы разработки приложений под iOS, iPadOS и macOS, Усов В., 2020
- Проектная деятельность школьника в среде программирования Scratch, Рындак В.Г., Дженжер В.О., Денисова Л.В., 2009
- Проектирование процесса проектирования, записки компьютерного эксперта, Брукс Ф., 2013