J'ai souvent entendu parler de blocages mais qu'est-ce qu'un dreadlocks dans le contexte de la programmation multithread ?
Mise à jour : La réponse de IAbstract renvoie à un livre blanc qui explique l'algorithme nommé dreadlocks (pas un produit, semble-t-il). Il couvre le concept de manière assez complète. Cependant, pour résumer brièvement ce dont il s'agit :
Un moyen courant de détecter les blocages est de garder la trace de quels threads verrouillent quelles ressources. Cela produit essentiellement un graphe thread-ressource, et lorsqu'un cycle apparaît dans ce graphe, une impasse s'est produite. Cette méthode est connue sous le nom de "spin-lock" et est également connue pour être coûteuse, de sorte que des alternatives plus efficaces comme les simples verrouillages temporaires sont également couramment utilisées. L'algorithme Dreadlock semble être une solution pour l'inefficacité des algorithmes spin-lock réguliers, en minimisant la quantité de données nécessaires pour garder la trace des cycles de verrouillage.