Junior — Middle
Explique as diferenças entre threads de execução e estrutura de fila na programação.
sobes.tech IA
Resposta da IA
Os threads de execução e as estruturas de filas (queues) são conceitos diferentes na programação, embora frequentemente usados juntos para organizar o paralelismo.
Thread de execução:
- É um fluxo de controlo separado dentro de um processo.
- Cada thread tem a sua própria pilha e registos.
- Os threads podem executar-se em paralelo em diferentes núcleos do processador.
- São usados para executar código simultaneamente.
Estrutura de fila:
- É uma estrutura de dados abstrata, geralmente FIFO (primeiro a chegar, primeiro a sair).
- Usada para armazenar tarefas, mensagens ou eventos que precisam de ser processados.
- No contexto do iOS, por exemplo, a Dispatch Queue (fila de despacho) gere a execução de blocos de código, garantindo sequencialidade ou paralelismo.
Exemplo no iOS:
- Fila serial — as tarefas são executadas sequencialmente num único thread.
- Fila concorrente — as tarefas podem ser executadas em paralelo, mas a ordem de adição é mantida.
Assim, um thread é um "executante", e uma fila é uma "lista de tarefas" para esse executante ou grupo de executantes.
Exemplo de uso da Dispatch Queue:
let queue = DispatchQueue(label: "com.example.myqueue")
queue.async {
print("Execução de tarefa na fila")
}
Aqui, a fila gere quando e em qual thread a tarefa será executada.