Learn how to use the Thread Sanitizer to catch Data Races in Swift. Fix flaky tests and weird crashes and see Data Race examples in Swift.| SwiftLee
The nonisolated and isolated keywords allow you to control Actor isolation and provide access to immutable state within actors.| SwiftLee
MainActor in Swift replaces DispatchQueue.main and ensures tasks are performing on the main thread in a performant manner.| SwiftLee
AsyncThrowingStream and AsyncStream allow you to rewrite existing closure based code to async-await overloading methods.| SwiftLee
Async let allows executing multiple async methods in parallel and awaiting all results together for better performance in your apps.| SwiftLee
Actors in Swift prevent Data Races by synchronizing access. Combined with nonisolated access you can prevent crashes in your apps.| SwiftLee
Methods marked with @MainActor are not always executed on the main thread. It's essential to understand thread dispatching with actors.| SwiftLee
Tasks in Swift allow us to create an environment in which we can run async methods using await. Learn how to create and use tasks in Swift.| SwiftLee
Task Groups allow you to run multiple tasks in parallel and await their results. Bundle the outcome together into a single collection.| SwiftLee
The @preconcurrency attribute allows you to suppress Sendable-related warnings emitted from 3rd party libraries temporarily.| SwiftLee
Detached tasks allow you to run code asynchronously, but you should be aware of the substantial consequences they introduce.| SwiftLee
Concurrency-safe global variables prevent you from running into data races, especially when you've enabled strict concurrency checking.| SwiftLee
AsyncSequence allows asynchronously iterating over values. Learn how to create custom implementations and when you should use them.| SwiftLee
Async await in Swift allows to write asynchronous tasks with structured concurrency. Maintain readability in complex code.| SwiftLee
What's new in Swift 6 and how do you migrate your projects and packages? Learn how to apply incremental migration and why you should update.| SwiftLee
Model of concurrent computation| en.wikipedia.org
Learn more using this list of Swift blog posts containing in-depth examples of Swift programming techniques, basics, and best practices.| SwiftLee
Unit testing async/await logic can be done by marking your unit test as asynchronous and using a new XCTest method.| SwiftLee