Junior — Middle
Pode explicar o mecanismo de funcionamento das operações síncronas numa fila sequencial?
sobes.tech IA
Resposta da IA
No iOS, a fila sequencial (serial queue) executa tarefas estritamente uma de cada vez, na ordem de adição. Uma operação síncrona (sync) nessa fila bloqueia o thread atual até que a tarefa seja concluída.
Mecanismo de funcionamento:
- Quando
queue.sync { ... }é chamado, o thread atual transfere a tarefa para a fila e espera até que ela seja concluída. - Em uma fila sequencial, as tarefas são executadas em ordem, portanto, se
syncfor chamado do mesmo thread que atende a fila, pode ocorrer um deadlock.
Exemplo:
let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.sync {
print("Execução da tarefa 1")
}
print("Tarefa 1 concluída, continuando")
Aqui, o thread que chamou sync será bloqueado até que a tarefa seja concluída. Isso é útil quando se precisa realizar um trabalho na fila e esperar pelo resultado, mas requer cuidado para não causar deadlock na própria fila.