Junior — Middle
Quels types de files d'attente sont disponibles dans GCD et en quoi diffèrent-ils en termes de comportement et d'utilisation?
sobes.tech IA
Réponse de l'IA
Dans GCD, les types de files d'attente suivants sont disponibles:
-
Files d'attente sériales (Serial Queues)
- Exécutent les tâches de manière séquentielle, l'une après l'autre.
- Utilisées pour synchroniser l'accès aux ressources afin d'éviter les conditions de course.
- Il est possible de créer des files d'attente sériales personnalisées.
-
Files d'attente concurrentes (Concurrent Queues)
- Exécutent plusieurs tâches simultanément.
- Il existe des files d'attente concurrentes globales avec différentes priorités (QoS).
- Permettent d'utiliser efficacement les systèmes multiprocesseurs.
-
File d'attente principale (Main Queue)
- File d'attente sériale liée au fil principal de l'application.
- Utilisée pour mettre à jour l'interface utilisateur et d'autres opérations devant s'exécuter sur le fil principal.
Différences et utilisation :
- Les files sériales garantissent l'ordre d'exécution et empêchent l'accès simultané aux ressources partagées.
- Les files concurrentes améliorent la performance grâce à l'exécution simultanée des tâches.
- La file principale est obligatoire pour travailler avec l'UI sur iOS.
Exemple de création et d'utilisation d'une file sériale :
let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
// Tâche 1
}
serialQueue.async {
// Tâche 2, qui s'exécutera après la Tâche 1
}