Sobes.tech
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)