Learning Concurrent Programming in Scala - Second Edition

Aleksandar Prokopec

  • 出版商: Packt Publishing
  • 出版日期: 2017-02-24
  • 定價: $1,470
  • 售價: 6.0$882
  • 語言: 英文
  • 頁數: 434
  • 裝訂: Paperback
  • ISBN: 1786466899
  • ISBN-13: 9781786466891
  • 相關分類: JVM 語言
  • 相關翻譯: Scala並發編程 第2版 (簡中版)
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

Key Features

  • Make the most of Scala by understanding its philosophy and harnessing the power of multicores
  • Get acquainted with cutting-edge technologies in the field of concurrency, through practical, real-world applications
  • Get this step-by-step guide packed with pragmatic examples

Book Description

Scala is a modern, multiparadigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. Scala smoothly integrates the features of object-oriented and functional languages.

In this second edition, you will find updated coverage of the Scala 2.12 platform. The Scala 2.12 series targets Java 8 and requires it for execution. The book starts by introducing you to the foundations of concurrent programming on the JVM, outlining the basics of the Java Memory Model, and then shows some of the classic building blocks of concurrency, such as the atomic variables, thread pools, and concurrent data structures, along with the caveats of traditional concurrency.

The book then walks you through different high-level concurrency abstractions, each tailored toward a specific class of programming tasks, while touching on the latest advancements of async programming capabilities of Scala. It also covers some useful patterns and idioms to use with the techniques described. Finally, the book presents an overview of when to use which concurrency library and demonstrates how they all work together, and then presents new exciting approaches to building concurrent and distributed systems.

What you will learn

  • Get to grips with the fundamentals of concurrent programming on modern multiprocessor systems
  • Build high-performance concurrent systems from simple, low-level concurrency primitives
  • Express asynchrony in concurrent computations with futures and promises
  • Seamlessly accelerate sequential programs by using data-parallel collections
  • Design safe, scalable, and easy-to-comprehend in-memory transactional data models
  • Transparently create distributed applications that scale across multiple machines
  • Integrate different concurrency frameworks together in large applications
  • Develop and implement scalable and easy-to-understand concurrent applications in Scala 2.12

About the Author

Aleksandar Prokopec, who also authored the first edition of this book, is a concurrent and distributed programming researcher. He holds a PhD in computer science from the École Polytechnique Fédérale de Lausanne, Switzerland. He has worked at Google and is currently a principal researcher at Oracle Labs.

As a member of the Scala team at EPFL, Aleksandar actively contributed to the Scala programming language, and he has worked on programming abstractions for concurrency, data-parallel programming support, and concurrent data structures for Scala. He created the Scala Parallel Collections framework, which is a library for high-level data-parallel programming in Scala, and participated in working groups for Scala concurrency libraries, such as Futures, Promises, and ScalaSTM. Aleksandar is the primary author of the reactor programming model for distributed computing.

Table of Contents

  1. Introduction
  2. Concurrency on the JVM and the Java Memory Model
  3. Traditional Building Blocks of Concurrency
  4. Asynchronous Programming with Futures and Promises
  5. Data-Parallel Collections
  6. Concurrent Programming with Reactive Extensions
  7. Software Transactional Memory
  8. Actors
  9. Concurrency in Practice
  10. Reactors

商品描述(中文翻譯)

主要特點



  • 通過理解Scala的哲學並利用多核心的威力,充分發揮Scala的潛力

  • 通過實際的實際應用,熟悉並了解並發領域的尖端技術

  • 獲得這本充滿實用示例的逐步指南

書籍描述


Scala是一種現代的多範式編程語言,旨在以簡潔、優雅和類型安全的方式表達常見的編程模式。Scala平滑地集成了面向對象和函數式語言的特性。


在這本第二版中,您將找到Scala 2.12平台的更新內容。Scala 2.12系列針對Java 8,並且需要Java 8才能執行。本書首先介紹了JVM上並發編程的基礎,概述了Java內存模型的基礎知識,然後展示了一些經典的並發構建塊,例如原子變量、線程池和並發數據結構,以及傳統並發的注意事項。


本書還介紹了不同的高級並發抽象,每個抽象都針對特定類型的編程任務,同時涉及Scala異步編程能力的最新進展。它還涵蓋了一些有用的模式和習慣用法,以配合所描述的技術使用。最後,本書概述了何時使用哪個並發庫,並演示它們如何共同工作,然後介紹了構建並發和分佈式系統的新方法。

你將學到什麼



  • 深入了解現代多處理器系統上的並發編程基礎知識

  • 使用簡單的低級並發原語構建高性能並發系統

  • 使用future和promise在並發計算中表達非同步性

  • 通過使用數據並行集合來無縫加速順序程序

  • 設計安全、可擴展且易於理解的內存事務數據模型

  • 透明地創建跨多台機器擴展的分佈式應用程序

  • 在大型應用程序中將不同的並發框架集成在一起

  • 在Scala 2.12中開發和實現可擴展且易於理解的並發應用程序

關於作者


Aleksandar Prokopec,也是本書的第一版作者,是一位並發和分佈式編程研究員。他擁有瑞士洛桑聯邦理工學院的計算機科學博士學位。他曾在Google工作,目前是Oracle Labs的首席研究員。


作為EPFL Scala團隊的成員,Aleksandar積極參與了Scala編程語言的開發,並研究了並發編程的編程抽象、Scala的數據並行編程支持以及Scala的並發數據結構。他創建了Scala Parallel Collections框架,該框架是Scala中高級數據並行編程的庫,並參與了Scala並發庫(如Futures、Promises和ScalaSTM)的工作組。Aleksandar是分佈式計算的反應器編程模型的主要作者。

目錄



  1. 引言

  2. JVM上的並發和Java內存模型

  3. 傳統的並發構建塊

  4. 使用future和promise進行異步編程

  5. 數據並行集合

  6. 使用反應式擴展進行並發編程

  7. 軟件事務內存

  8. 演員

  9. 實踐中的並發

  10. 反應器