Multicœur et synchronisation
Quelle propriété caractérise un algorithme sans verrou (lock-free) ?
- AMême si un thread s’arrête en cours de route, au moins un des autres threads peut progresser
- BTous les threads terminent leur traitement en un nombre d’étapes fixe
- CLes données partagées sont mises à jour sans aucune instruction atomique
Afficher la réponse et l'explication
Réponse : A. Même si un thread s’arrête en cours de route, au moins un des autres threads peut progresser
Avec un verrou, si le thread détenteur est arrêté par une interruption ou une faible priorité, tous les autres attendent. Un algorithme sans verrou met à jour directement les données partagées, par exemple par CAS, de sorte qu’un thread n’échoue et ne recommence que lorsqu’un autre a réussi. Globalement, un thread progresse donc toujours. Cependant, ces algorithmes sont difficiles à écrire correctement et exigent de prendre garde notamment au problème ABA.
Continuer : 9 autres questions sur Multicœur et synchronisation