Аннотация: Конкурентное программирование на Scala
| Автор/составитель | Прокопец Александр |
| Год выпуска | 2018 |
| ISBN | 978-5-97060-572-1 |
| Производитель | ДМК-Пресс |
| Издательство | ДМК-Пресс |
| Количество томов | 1 |
| Количество страниц | 342 |
| Переплет | Твёрдый переплёт |
| Размеры | 242x172x19 мм |
| Тип бумаги | офсетная (60-220 г/м2) |
| Наличие иллюстраций | рисунки |
| Тип иллюстраций | черно-белые |
| Формат | 70x100/16 (170x240 мм) |
| Тираж | 200 |
| Стандарт | 12 |
| Вес | 574 |
| Язык | русский |
Scala - современный, мультипарадигменный язык программирования, позволяющий описывать типичные шаблоны программирования компактнее, выразительнее и безопаснее. Scala прекрасно сочетает в себе черты объектно-ориентированных и функциональных языков.
Во втором издании книги рассматривается актуальная версии Scala 2.12, требующая для работы Java 8. Книга начинается с введения в основы конкурентного программирования в JVM и описания модели памяти в Java, а после демонстрирует основные строительные блоки для реализации конкурентных вычислений, такие как атомарные переменные, пулы потоков и конкурентные структуры данных. Затем рассматриваются разные высокоуровневые абстракции конкуренции, каждая из которых ориентирована на решение определенного класса задач, при этом затрагиваются самые последние достижения в поддержке асинхронного программирования. Также охватываются некоторые полезные шаблоны и способы использования описываемых приемов. В заключение дается краткий обзор применения разных библиотек поддержки конкуренции и демонстрируется возможность их совместного использования.
Основные темы, рассматриваемые в книге:
- принципы конкурентного программирования для современных многопроцессорных систем;
- создание высокопроизводительных систем на основе простых, низкоуровневых примитивов асинхронных вычислений;
- организация асинхронных вычислений с применением объектов Future и Promise;
- увеличение производительности последовательных программ за счет использования параллельных коллекций;
- разработка надежных, масштабируемых и простых в использование моделей данных с использованием транзакционной памяти;
- прозрачная поддержка распределенных вычислений, способных выполняться на нескольких компьютерах;
- интеграция разных фреймворков конкуренции в больших приложениях;
- проектирование и реализация масштабируемых и простых в сопровождении конкурентных приложений на Scala 2.12.