Modern Concurrency

When was it introduced? It was introduced in Swift 5.5 at WWDC 2021. You can find the more comprehensive info about Modern Concurrency in Swift Concurrency Manifesto. What are actors? Actors eliminate shared mutable state and explicit synchronization through deep copying of all the data that passed to an actor to a message sent and preventing direct access to actor state. Actors are reference types. actor DatabaseManager { private var data: [String: String] = [:] func readData(key: String) -> String?...

February 4, 2024 · 4 min · Dmytro Chumakov

What are Threads in Swift?

What is the Thread? A Thread is a small set of instructions that can be executed independently from the main program. Threads are often used to improve program performance by allowing multiple tasks to be executed at the same time. The Thread has its own stack, registers, and program counters. Threads share memory address space, and it is possible to communicate between Threads using shared memory space. How to use it?...

January 20, 2024 · 2 min · Dmytro Chumakov

DispatchGroup in Swift

What is DispatchGroup? DispatchGroup provides a mechanism to track the completion group of tasks. How DispatchGroup works? DispatchGroup has three main methods, enter, leave and notify, that allow you to control the completion of a specific task. let dispatchGroup = DispatchGroup() dispatchGroup.enter() dispatchGroup.leave() dispatchGroup.notify(queue: .main) {} Let`s talk about each of these methods. enter — manually indicate a block has entered group. leave — manually indicate a block in the group has been completed....

January 10, 2024 · 2 min · Dmytro Chumakov

Concurrency in Swift

What is concurrency? The system can perform multiple tasks simultaneously. By tasks, I mean code or instructions. Modern computer chips have multiple cores that allow developers to create and run various tasks on multiple cores. Even if your chip has one core operating system it will provide context switching mechanism by enabling it to execute multiple tasks concurrently. Material about processes, threads I will skip explaining concepts about processes and threads because it is a vast topic, and it will take a lot of time to explain it....

January 7, 2024 · 6 min · Dmytro Chumakov