Alors, je suis venu avec ce système pour les noeuds de blocage lors de la rotation dans un arbre binaire que plusieurs threads ont à la fois en lecture et écriture au même temps, ce qui implique le verrouillage de quatre nœuds par rotation, ce qui semble être terriblement? Je pensais que d'une façon plus intelligente, alors j'avais trouvé un moyen de réduire le verrouillage nécessaire, mais Google ne s'est pas montré beaucoup (j'utilise probablement la mauvaise terminologie de toute façon). Ceci est mon schéma actuel, les nœuds orange et rouge sont soit déplacés ou modifiés par la rotation et doivent être verrouillés et les nœuds verts sont adjacents à tout nœud qui est affecté par la rotation, mais ne sont pas affectés par eux-mêmes.(Plus) verrouillage efficace lors de la rotation des noeuds dans l'arbre binaire fileté
je me suis dit qu'il doit y avoir une meilleure façon de faire, une idée que j'ai est de prendre un instantané des quatre nœuds concernés, les faire pivoter dans l'instantané, puis remplacer les noeuds de courant avec le les instantanés (en supposant que rien n'a changé pendant que je faisais les rotations) - cela me permettrait d'être presque libre mais je fermerai crains que la surcharge de la mémoire pourrait être de beaucoup, étant donné que la rotation est une opération assez rapide (re- assigner trois pointeurs)?
Je suppose que je suis à la recherche pour les pointeurs (sans jeu de mots) sur la façon de le faire efficacement.
Le lien de l'image est cassé. –