Sobes.tech
Junior — Middle

Que tipos de filas estão disponíveis no GCD e como eles diferem em comportamento e uso?

sobes.tech IA

Resposta da IA

No GCD, estão disponíveis os seguintes tipos de filas:

  1. Filas seriais (Serial Queues)

    • Executam tarefas sequencialmente, uma após a outra.
    • São usadas para sincronizar o acesso a recursos e evitar condições de corrida.
    • É possível criar filas seriais personalizadas.
  2. Filas concorrentes (Concurrent Queues)

    • Executam várias tarefas simultaneamente.
    • Existem filas concorrentes globais com diferentes prioridades (QoS).
    • Permitem aproveitar eficientemente sistemas multiprocessador.
  3. Fila principal (Main Queue)

    • Fila serial vinculada ao thread principal da aplicação.
    • Usada para atualizar a interface do utilizador e outras operações que devem ser executadas no thread principal.

Diferenças e uso:

  • Filas seriais garantem a ordem de execução e evitam acessos simultâneos a recursos partilhados.
  • Filas concorrentes aumentam o desempenho através da execução simultânea de tarefas.
  • A fila principal é obrigatória para trabalhar com a UI no iOS.

Exemplo de criação e uso de uma fila serial:

let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
    // Tarefa 1
}
serialQueue.async {
    // Tarefa 2, que será executada após a Tarefa 1
}