Book description
Take advantage of Kotlin's concurrency primitives to write efficient multithreaded applications
Key Features
- Learn Kotlin's unique approach to multithreading
- Work through practical examples that will help you write concurrent non-blocking code
- Improve the overall execution speed in multiprocessor and multicore systems
Book Description
The primary requirements of modern-day applications are scalability, speed, and making the most use of hardware. Kotlin meets these requirements with its immense support for concurrency. Many concurrent primitives of Kotlin, such as channels and suspending functions, are designed to be non-blocking and efficient. This allows for new approaches to concurrency and creates unique challenges for the design and implementation of concurrent code. Learning Concurrency in Kotlin addresses those challenges with real-life examples and exercises that take advantage of Kotlin's primitives. Beginning with an introduction to Kotlin's coroutines, you will learn how to write concurrent code and understand the fundamental concepts needed to be able to write multithreaded software in Kotlin. You'll explore how to communicate between and synchronize your threads and coroutines to write asynchronous applications that are collaborative. You'll also learn how to handle errors and exceptions, as well as how to leverage multi-core processing. In addition to this, you'll delve into how coroutines work internally, allowing you to see the bigger picture. Throughout the book you'll build an Android application – an RSS reader – designed and implemented according to the different topics covered in the book
What you will learn
- Understand Kotlin's approach to concurrency
- Implement sequential and asynchronous suspending functions
- Create suspending data sources that are resumed on demand
- Explore the best practices for error handling
- Use channels to communicate between coroutines
- Uncover how coroutines work under the hood
Who this book is for
If you're a Kotlin or Android developer interested in learning how to program concurrently to enhance the performance of your applications, this is the book for you.
Table of contents
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Preface
- Hello, Concurrent World!
-
Coroutines in Action
- Downloading and installing Android Studio
- Creating a Kotlin project
- Adding support for coroutines
- Android's UI thread
- Creating a thread
- Adding networking permissions
- Creating a coroutine to call a service
- Adding UI elements
- Displaying the amount of news that were processed
- Using a UI dispatcher
- Creating an asynchronous function to hold the request... or not
- Summary
- Life Cycle and Error Handling
-
Suspending Functions and the Coroutine Context
- Improving the UI of the RSS Reader
- Suspending functions
- The coroutine context
- More about contexts
- Summary
- Iterators, Sequences, and Producers
- Channels - Share Memory by Communicating
-
Thread Confinement, Actors, and Mutexes
- Atomicity violation
- Thread confinement
- Actors
- Mutual exclusions
- Volatile variables
- Atomic data structures
-
Actors in action
- Adding the label to the UI
- Creating an actor to use as a counter
- Increasing the counter as results are loaded
- Adding a channel so that the UI reacts to updates
- Sending the updated value through the channel
- Updating the UI on changes
- Testing the implementation
- Extending the actor to allow for resetting the counter
- Resetting the counter upon new searches
- Summary
- Testing and Debugging Concurrent Code
- The Internals of Concurrency in Kotlin
- Other Books You May Enjoy
Product information
- Title: Learning Concurrency in Kotlin
- Author(s):
- Release date: July 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788627160
You might also like
book
Functional Programming in Kotlin
Master techniques and concepts of functional programming to deliver safer, simpler, and more effective Kotlin code. …
book
Mastering High Performance with Kotlin
Find out how to write Kotlin code without overhead and how to use different profiling tools …
book
Reactive Programming in Kotlin
Learn how to implement Reactive Programming paradigms with Kotlin, and apply them to web programming with …
video
Java to Kotlin
The Gilded Rose is a classic refactoring kata, available in many languages at https://github.com/emilybache/GildedRose-Refactoring-Kata. In this …