Multicœur et synchronisation
Dans un programme utilisant plusieurs verrous, quelle est la méthode la plus courante pour éviter l’interblocage ?
- AFixer un ordre unique de prise des verrous, respecté par tous les threads dans tout le programme
- BNe jamais libérer un verrou une fois pris
- CLimiter le nombre de threads à deux au plus
Afficher la réponse et l'explication
Réponse : A. Fixer un ordre unique de prise des verrous, respecté par tous les threads dans tout le programme
L’interblocage survient lorsqu’un « cycle » se forme, chaque thread attendant le verrou détenu par un autre. Si tous respectent par exemple la règle « toujours prendre A avant B », aucun thread ne détient B en attendant A, et aucun cycle ne se forme. Il existe d’autres méthodes : prendre d’un coup tous les verrous nécessaires, ou relâcher les verrous détenus et recommencer en cas d’échec.
Continuer : 9 autres questions sur Multicœur et synchronisation