Learning concurrent programming in Scala : learn the art of building intricate, modern, scalable concurrent applications using Scala /


Aleksandar Prokopec.
Bok Engelsk 2014 Aleksandr Andreevich Prokof'ev,· Electronic books.
Annen tittel
Medvirkende
Odersky, Martin, ( writer of introduction. )
Omfang
1 online resource (366 p.)
Utgave
1st edition
Opplysninger
Includes index.. - Cover; Copyright; Credits; Foreword; About the Author; Acknowledgments; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Introduction; Concurrent programming; A brief overview of traditional concurrency; Modern concurrency paradigms; The advantages of Scala; Preliminaries; Execution of a Scala program; A Scala primer; Summary; Exercises; Chapter 2: Concurrency on the JVM and the Java Memory Model; Processes and Threads; Creating and starting threads; Atomic execution; Reordering; Monitors and synchronization; Deadlocks; Guarded blocks. - Interrupting threads and the graceful shutdownVolatile variables; The Java Memory Model; Immutable objects and final fields; Summary; Exercises; Chapter 3: Traditional Building Blocks of Concurrency; The Executor and ExecutionContext objects; Atomic primitives; Atomic variables; Lock-free programming; Implementing locks explicitly; The ABA problem; Lazy values; Concurrent collections; Concurrent queues; Concurrent sets and maps; Concurrent traversals; Creating and handling processes; Summary; Exercises; Chapter 4: Asynchronous Programming with Futures and Promises; Futures. - Measuring the performance on the JVMCaveats of parallel collections; Non-parallelizable collections; Non-parallelizable operations; Side effects in parallel operations; Nondeterministic parallel operations; Commutative and associative operators; Using parallel and concurrent collections together; Weakly consistent iterators; Implementing custom parallel collections; Splitters; Combiners; Alternative data-parallel frameworks; Collections hierarchy in ScalaBlitz; Summary; Exercises; Chapter 6: Concurrent Programming with Reactive Extensions; Creating Observable objects. - Observables and exceptionsThe Observable contract; Implementing custom Observable objects; Creating Observables from futures; Subscriptions; Composing Observable objects; Nested observables; Failure handling in observables; Rx schedulers; Using custom schedulers for UI applications; Subjects and top-down reactive programming; Summary; Exercises; Chapter 7: Software Transactional Memory; The trouble with atomic variables; Using Software Transactional Memory; Transactional references; Using the atomic statement; Composing transactions; The interaction between transactions and side effects. - Single-operation transactions. - Starting future computationsFuture callbacks; Futures and exceptions; Using the Try type; Fatal exceptions; Functional composition on futures; Promises; Converting callback-based APIs; Extending the future API; Cancellation of asynchronous computations; Futures and blocking; Awaiting futures; Blocking in asynchronous computations; The Scala Async library; Alternative Future frameworks; Summary; Exercises; Chapter 5: Data-Parallel Collections; Scala collections in a nutshell; Using parallel collections; Parallel collection class hierarchy; Configuring the parallelism level. - This book is a must-have tutorial for software developers aiming to write concurrent programs in Scala, or broaden their existing knowledge of concurrency.This book is intended for Scala programmers that have no prior knowledge about concurrent programming, as well as those seeking to broaden their existing knowledge about concurrency. Basic knowledge of the Scala programming language will be helpful. Readers with a solid knowledge in another programming language, such as Java, should find this book easily accessible.
Emner
Sjanger
Dewey
ISBN
1-78328-142-1

Bibliotek som har denne