When to use @concuurent?
Asked on 06/11/2025
1 search
The @concurrent
attribute in Swift is used to ensure that a function always runs on the concurrent thread pool, freeing up the actor to run other tasks at the same time. This is particularly useful when you want to offload work to the background to improve performance, such as when performing CPU-intensive tasks that should not block the main actor or any other actor.
In the session Embracing Swift concurrency, it is mentioned that using @concurrent
isn't always the best choice for APIs, especially when decoding small amounts of data, which is okay to do on the main thread. For libraries, it's often better to provide a non-isolated API and let clients decide whether to offload work.
The session What’s new in Swift also discusses how @concurrent
works with the concurrent thread pool to make concurrency more approachable, allowing you to start by writing code that runs on the main actor by default and then offload specific code to the background to run in parallel when ready to embrace concurrency for performance improvements.

Embracing Swift concurrency
Join us to learn the core Swift concurrency concepts. Concurrency helps you improve app responsiveness and performance, and Swift is designed to make asynchronous and concurrent code easier to write correctly. We’ll cover the steps you need to take an app through from single-threaded to concurrent. We’ll also help you determine how and when to make the best use of Swift concurrency features – whether it’s making your code more asynchronous, moving it to the background, or sharing data across concurrent tasks.

Explore concurrency in SwiftUI
Discover how SwiftUI leverages Swift concurrency to build safe and responsive apps. Explore how SwiftUI uses the main actor by default and offloads work to other actors. Learn how to interpret concurrency annotations and manage async tasks with SwiftUI’s event loop for smooth animations and UI updates. You’ll leave knowing how to avoid data races and write code fearlessly.

What’s new in Swift
Join us for an update on Swift. We’ll talk about workflow improvements that make you more productive, and new and modernized library APIs for fundamental programming tasks. We’ll show examples of Swift adoption throughout more layers of the software stack. Finally, we’ll explore new language features for both improving approachability of concurrency, and achieving peak performance when you need it.