Learning concurrent programming in Scala
Enlarge text Shrink text- Book
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.
Title |
Learning concurrent programming in Scala : learn the art of building intricate, modern, scalable concurrent applications using Scala / Aleksandar Prokopec. |
---|---|
Additional Titles |
Learn the art of building intricate, modern, scalable concurrent applications using Scala |
Edition |
1st edition. |
Publisher |
Birmingham, England : Packt Publishing |
Creation Date |
2014 |
Notes |
Includes index. English |
Content |
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 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 Chapter 4: Asynchronous Programming with Futures and Promises Futures 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 Chapter 5: Data-Parallel Collections Scala collections in a nutshell Using parallel collections Parallel collection class hierarchy Configuring the parallelism level 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 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 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 |
Series |
Community Experience Distilled |
Extent |
1 online resource (366 p.) |
Language |
English |
Copyright Date |
©2014 |
National Library system number |
997010711665705171 |
MARC RECORDS
Have more information? Found a mistake?