Table of Contents
Chapter 1: Introduction to Concurrency
• What is concurrency?
• Why is concurrency hard to implement?
• Existing methods to implement concurrency in Apple Platforms (before async/await).
Chapter 2: Async/Await Basics
• The keywords and components that play a role in the new concurrency system
• Explaining the ‘async‘ keyword
• Explaining the ‘await‘ keyword
• Understanding tasks
• Understanding the meaning of Continuations.
Chapter 3: Introducing Structured Concurrency
• Understanding structured concurrency
• Using the ‘async let‘ construct to create concurrency.
• Migrating older delegate and callback-based code into async/await.
Chapter 4: The Task Tree
• The Task Tree structure
• Understanding Task cancellation
• What is cooperative task cancellation?
Chapter 5: Task Groups
• Understanding and implementing task groups.
• Implementing concurrency with ‘withThrowingTaskGroup‘
• Understanding ‘withTaskGroup‘.
Chapter 6: Unstructured Concurrency
• Launching concurrent tasks from non-concurrent contexts.
• Understanding detached tasks and how to use them.
Chapter 7: Actors and Global Actors
• Understanding actors as reference types.
• The purpose of state isolation.
• Understanding the purpose of global actors.
Chapter 8: Final Bits
• Understanding the @TaskLocal property wrapper
• Using the ‘AsyncSequence‘ prool in Swift.
• Using AsyncStream to receive events in an awaited loop.
• Sendable types
Audience: Advanced