Tag

Questions tagged “Concurrency”

Start from this tag, then add more in the filter bar to narrow further. The URL keeps your choices so you can bookmark or share the same view.

What is the difference between .task() and .onAppear()?

Both run when a view appears, but .task is async and cancelled with the view’s lifetime, while .onAppear is synchronous and does not cancel work for you

What does @escaping mean on a closure parameter and when do you actually need it?

Explain why Swift split escaping and non-escaping closures — lifetime, performance, and retain-cycle safety — then cover @autoclosure, trailing syntax, and @Sendable

On which thread does Swift call deinit?

Explain that deinit runs where the last strong reference is released, then connect that rule to UI safety, MainActor isolation, and isolated deinit

What's the difference between GCD and OperationQueue?

GCD is Apple's low-level API for scheduling work on dispatch queues. OperationQueue is a higher-level Foundation API that represents work as Operation objects with dependencies, cancellation, priorities, and concurrency limits.

What's the difference between Task, Task.detached, and TaskGroup?

Task creates unstructured work that inherits context, Task.detached creates unstructured work without inheriting context, and a task group creates structured child tasks that the parent awaits together.

What's the difference between DispatchQueue.main.async and .sync?

.async schedules work and returns immediately, while .sync blocks the caller until the work finishes. On the main queue, .async is the normal way to perform UI work, whereas calling .sync from the main thread causes a deadlock.