Junior
Quelle est la différence entre les requêtes synchrones et asynchrones?
sobes.tech IA
Réponse de l'IA
Les requêtes synchrones bloquent le thread d'exécution actuel jusqu'à la réception de la réponse. Les requêtes asynchrones ne bloquent pas le thread ; la réponse est traitée à la fin de l'opération, généralement via un mécanisme de rappel (callback), délégué ou fermeture.
| Caractéristique | Requête synchrone | Requête asynchrone |
|---|---|---|
| Blocage du thread | Oui | Non |
| Réactivité UI | Peut bloquer l'UI | Ne bloque pas l'UI |
| Complexité d'implémentation | Plus simple | Plus complexe (gestion d'état) |
| Utilisation en iOS | Rare, seulement pour des tâches courtes, pas sur le thread principal | Préféré, surtout pour des opérations longues |
Exemple de requête asynchrone avec URLSession:
// Créer une tâche URLSession
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Ce bloc s'exécute de manière asynchrone après la fin de la requête
if let error = error {
print("Erreur: \(error.localizedDescription)")
return
}
// Traitement des données reçues
if let data = data {
print("Données reçues, bytes: \(data.count)")
}
// La mise à jour de l'UI doit se faire sur le thread principal
DispatchQueue.main.async {
// Mise à jour de l'UI
}
}
// Démarrer la tâche
task.resume()
// Le code ici s'exécute immédiatement, sans attendre la fin de la requête
print("Requête envoyée")