Scala - современный, мультипарадигменный язык программирования, позволяющий описывать типичные шаблоны программирования компактнее, выразительнее и безопаснее. Scala прекрасно сочетает в себе черты объектно-ориентированных и функциональных языков.Во втором издании книги рассматривается актуальная версии Scala 2.12, требующая для работы Java 8. Книга начинается с введения в основы конкурентного программирования в JVM и описания модели памяти в Java, а после демонстрирует основные строительные блоки для реализации конкурентных вычислений, такие как атомарные переменные, пулы потоков и конкурентные структуры данных. Затем рассматриваются разные высокоуровневые абстракции конкуренции, каждая из которых ориентирована на решение определенного класса задач, при этом затрагиваются самые последние достижения в поддержке асинхронного программирования. Также охватываются некоторые полезные шаблоны и способы использования описываемых приемов. В заключение дается краткий обзор применения разных библиотек поддержки конкуренции и демонстрируется возможность их совместного использования.Основные темы, рассматриваемые в книге:- принципы конкурентного программирования для современных многопроцессорных систем;- создание высокопроизводительных систем на основе простых, низкоуровневых примитивов асинхронных вычислений;- организация асинхронных вычислений с применением объектов Future и Promise;- увеличение производительности последовательных программ за счет использования параллельных коллекций;- разработка надежных, масштабируемых и простых в использование моделей данных с использованием транзакционной памяти;- прозрачная поддержка распределенных вычислений, способных выполняться на нескольких компьютерах;- интеграция разных фреймворков конкуренции в больших приложениях;- проектирование и реализация масштабируемых и простых в сопровождении конкурентных приложений на Scala 2.12.
Scala - sovremennyj, multiparadigmennyj jazyk programmirovanija, pozvoljajuschij opisyvat tipichnye shablony programmirovanija kompaktnee, vyrazitelnee i bezopasnee. Scala prekrasno sochetaet v sebe cherty obektno-orientirovannykh i funktsionalnykh jazykov.Vo vtorom izdanii knigi rassmatrivaetsja aktualnaja versii Scala 2.12, trebujuschaja dlja raboty Java 8. Kniga nachinaetsja s vvedenija v osnovy konkurentnogo programmirovanija v JVM i opisanija modeli pamjati v Java, a posle demonstriruet osnovnye stroitelnye bloki dlja realizatsii konkurentnykh vychislenij, takie kak atomarnye peremennye, puly potokov i konkurentnye struktury dannykh. Zatem rassmatrivajutsja raznye vysokourovnevye abstraktsii konkurentsii, kazhdaja iz kotorykh orientirovana na reshenie opredelennogo klassa zadach, pri etom zatragivajutsja samye poslednie dostizhenija v podderzhke asinkhronnogo programmirovanija. Takzhe okhvatyvajutsja nekotorye poleznye shablony i sposoby ispolzovanija opisyvaemykh priemov. V zakljuchenie daetsja kratkij obzor primenenija raznykh bibliotek podderzhki konkurentsii i demonstriruetsja vozmozhnost ikh sovmestnogo ispolzovanija.Osnovnye temy, rassmatrivaemye v knige:- printsipy konkurentnogo programmirovanija dlja sovremennykh mnogoprotsessornykh sistem;- sozdanie vysokoproizvoditelnykh sistem na osnove prostykh, nizkourovnevykh primitivov asinkhronnykh vychislenij;- organizatsija asinkhronnykh vychislenij s primeneniem obektov Future i Promise;- uvelichenie proizvoditelnosti posledovatelnykh programm za schet ispolzovanija parallelnykh kollektsij;- razrabotka nadezhnykh, masshtabiruemykh i prostykh v ispolzovanie modelej dannykh s ispolzovaniem tranzaktsionnoj pamjati;- prozrachnaja podderzhka raspredelennykh vychislenij, sposobnykh vypolnjatsja na neskolkikh kompjuterakh;- integratsija raznykh frejmvorkov konkurentsii v bolshikh prilozhenijakh;- proektirovanie i realizatsija masshtabiruemykh i prostykh v soprovozhdenii konkurentnykh prilozhenij na Scala 2.12.