Em Swift, "synchronous" e "asynchronous" referem-se à forma como o código é executado em relação ao fluxo de execução principal. Aqui estão as principais diferenças entre eles, juntamente com exemplos simples:
Exemplo em Swift:
func syncFunction() {
print("Início da função síncrona")
// Alguma operação bloqueante
sleep(2)
print("Fim da função síncrona")
}
print("Antes da chamada síncrona")
syncFunction()
print("Depois da chamada síncrona")
Saída:
Antes da chamada síncrona
Início da função síncrona
Fim da função síncrona
Depois da chamada síncrona
Exemplo em Swift usando GCD (Grand Central Dispatch):
func asyncFunction() {
print("Início da função assíncrona")
// Realiza uma operação assíncrona em segundo plano
DispatchQueue.global().async {
sleep(2)
print("Fim da operação assíncrona")
}
}
print("Antes da chamada assíncrona")
asyncFunction()
print("Depois da chamada assíncrona")
Saída:
Antes da chamada assíncrona
Início da função assíncrona
Depois da chamada assíncrona
Fim da operação assíncrona
No exemplo assíncrono, a função assíncrona não espera a conclusão da operação em segundo plano, permitindo que o programa continue sua execução enquanto aguarda a conclusão da tarefa assíncrona.
O Grand Central Dispatch (GCD) é uma tecnologia desenvolvida pela Apple para simplificar a programação concorrente em sistemas operacionais macOS, iOS e outros relacionados. O GCD fornece uma abstração de baixo nível para gerenciar operações concorrentes, facilitando o desenvolvimento de aplicativos eficientes e responsivos.
Principais características do GCD: