Junior — Middle
Pode explicar o conceito de concorrência e o seu papel na programação?
sobes.tech IA
Resposta da IA
A concorrência é a capacidade de um programa executar várias tarefas simultaneamente ou sobrepor sua execução no tempo. Na programação, isso é importante para melhorar a eficiência na utilização de recursos, a capacidade de resposta das aplicações e acelerar o processamento de dados.
No iOS, por exemplo, a concorrência ajuda a realizar solicitações de rede, processamento de dados e atualização da interface de usuário em paralelo, sem bloquear o thread principal. Para isso, usam-se ferramentas como GCD (Grand Central Dispatch) e OperationQueue.
Exemplo de uso do GCD para uma tarefa assíncrona:
DispatchQueue.global(qos: .background).async {
// Tarefa longa
let result = performHeavyCalculation()
DispatchQueue.main.async {
// Atualização da UI
self.label.text = "Resultado: \(result)"
}
}