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:
-
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.
-
Filas concorrentes (Concurrent Queues)
- Executam várias tarefas simultaneamente.
- Existem filas concorrentes globais com diferentes prioridades (QoS).
- Permitem aproveitar eficientemente sistemas multiprocessador.
-
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
}