Junior — Middle
Como é que os mecanismos GCD e OperationQueue interagem na gestão de tarefas no iOS?
sobes.tech IA
Resposta da IA
GCD (Grand Central Dispatch) e OperationQueue são dois mecanismos para gerir tarefas assíncronas no iOS, mas operam em diferentes níveis de abstração.
- GCD é uma API de baixo nível para trabalhar com filas de tarefas (dispatch queues). Permite executar blocos de código de forma rápida e eficiente em paralelo ou sequencialmente.
- OperationQueue é uma classe de nível superior que usa GCD por baixo dos panos, mas oferece funcionalidades adicionais, como dependências entre tarefas, prioridades e cancelamento de operações.
Interação: OperationQueue gere objetos Operation, que ao serem iniciados usam GCD para executar seus blocos de código. Assim, OperationQueue é construída sobre GCD, facilitando a gestão de cenários complexos de execução de tarefas.
Exemplo:
let queue = OperationQueue()
let operation1 = BlockOperation {
print("Tarefa 1")
}
let operation2 = BlockOperation {
print("Tarefa 2")
}
operation2.addDependency(operation1) // operation2 será executada após operation1
queue.addOperations([operation1, operation2], waitUntilFinished: false)