Table des matières:
- Définition - Que signifie la synchronisation des threads?
- Techopedia explique la synchronisation des threads
Définition - Que signifie la synchronisation des threads?
La synchronisation des threads est l'exécution simultanée de deux threads ou plus qui partagent des ressources critiques. Les threads doivent être synchronisés pour éviter les conflits critiques d'utilisation des ressources. Sinon, des conflits peuvent survenir lorsque des threads exécutés en parallèle tentent de modifier une variable commune en même temps.
Techopedia explique la synchronisation des threads
Pour clarifier la synchronisation des threads, considérons l'exemple suivant: trois threads - A, B et C - sont exécutés simultanément et doivent accéder à une ressource critique, Z. Pour éviter les conflits lors de l'accès à Z, les threads A, B et C doivent être synchronisés . Ainsi, lorsque A accède à Z et que B essaie également d'accéder à Z, l'accès de B à Z doit être évité avec des mesures de sécurité jusqu'à ce que A termine son opération et sorte de Z.
En Java, deux stratégies de synchronisation sont utilisées pour éviter les interférences de thread et les erreurs de cohérence de la mémoire:
- Méthode synchronisée: inclut le mot clé synchronized dans sa déclaration. Lorsqu'un thread appelle une méthode synchronisée, la méthode synchronisée acquiert automatiquement le verrou intrinsèque pour l'objet de cette méthode et le libère lorsque la méthode retourne, même si ce retour a été provoqué par une exception non interceptée.
- Instruction synchronisée: déclare un bloc de code à synchroniser. Contrairement aux méthodes synchronisées, les instructions synchronisées doivent spécifier les objets qui fournissent le verrou intrinsèque. Ces instructions sont utiles pour améliorer la simultanéité avec une synchronisation à granularité fine, car elles permettent d'éviter un blocage inutile.