Shape Shape point chapter-list Group Group Group Group Group Shape Copy 12 Shape Shape Copy 3 Shape Shape dropdown editor editor Combined Shape grid Shape Copy 4 Shape Copy 7 Shape language language Shape megaphone paperback Shape platform noun_419259-2 copy play-icon Group BS-Question-Rounded-Circle quotes noun_610406 stacked-books-1 stacked-books-2 Group Group Group Group Group Group Group Group Group Path

Concurrency by Tutorials

$39.99 4.4/5 11 reviews · Write a Review
  • Platform iOS 13
  • Language Swift 5.1
  • Editor Xcode 11

The book that teaches you everything there is to know about how to write performant and concurrent code for your iOS apps.

Developer Guide


For Intermediate Developers

Dive Into Concurrency in Your iOS Apps!

Learn what is Concurrency and why would you even want to utilize it in your apps? Learn about Grand Central Dispatch, Apple's implementation of C's libdispatch, also known as GCD, as it's one of the simplest ways to queue up tasks to be run in parallel. Then, take on Operations & Operation Queues for when GCD doesn't quite cut it; you'll learn how to further customize and reuse your concurrent work. You'll then learn common concurrency problems that you could face while developing concurrent applications, such as Race Conditions, Deadlocks, and more. Finally, understand threads and thread sanitizer and the various threading-related concepts and how these connect to the knowledge you've accumulated throughout this book. You'll also learn how to use Thread Sanitizer to ease your debugging when things go wrong.

Table of Contents

Section 1: Getting Started with Concurrency



Get a quick overview of what concurrency is and why you might want to use it.


GCD vs. Operations

Concurrency can be handled by either Grand Central Dispatch (GCD) or Operations. Learn about the differences.

Section II: Grand Central Dispatch


Queues & Threads

This chapter teaches you how to use a GCD queue to offload work from the main thread. You'll also learn what a "thread" is.


Groups & Semaphores

In the previous chapter you learned about how queues work. In this chapter you'll expand that knowledge to learn how to submit multiple tasks to a queue which need to run together as a "group" so that you can be notified when they have all completed. You'll also learn how to wrap an existing API so that you can call it asynchronously.


Concurrency Problems

By now you know how GCD can make your app so much faster. This chapter will show you some of the dangers of concurrency if you're not careful, and how to avoid them.

Section III: Operations



In this chapter you'll switch gears and start learning about the Operations class, which allows for much more powerful control over your concurrent tasks.


Operation Queues

Similar to the Dispatch Queues you learned about back in Chapter 3, the Operation class uses an OperationQueue to perform a similar function.


Asynchronous Operations

Now that you can create an Operation and submit it to a queue, you'll learn how to make the operation itself asynchronous. While not something you'll do regularly, it's important to know that it's possible.


Operation Dependencies

The "killer feature" of Operations is being able to tell the OS that one operation is dependent on another and shouldn't being until the dependency has finished.


Canceling Operations

There are times when you need to stop an operation that is running, or has yet to start. This chapter will teach you the concepts that you need to be aware of to support cancelation.

Section IV: Real-Life Concurrency


Core Data

Core Data works well with concurrency as long as you keep a few simple rules in mind. This chapter will teach you how to make sure that your Core Data app is able to handle concurrency properly.


Thread Sanitizer

Data races occur when multiple threads access the same memory without synchronization and at least one access is a write. This chapter will teach you how to use Apple's Thread Sanitizer to detect data races.

Meet the Team

Average Rating

4.4 /5

Leave a review for this product

11 reviews

Concurrency by Tutorials

The book that teaches you everything there is to know about how to write performant and concurrent code for your iOS apps.