Remplacer la section critique avec verrouillage SRW
-
29-09-2019 - |
Question
Si l'application est ciblée sur Windows Vista ou version ultérieure, pourrait-on remplacer tous noreferrer sections critiques avec SRW serrures ? Étant donné que la section critique est mutuellement exclusive, pour l'utilisation, il est équivalent aux serrures SRW en mode exclusif, non? Selon MSDN, SRW est optimisé à la fois pour la vitesse et de l'espace. Y at-il inconvénient pour ce faire? Je ne sais pas comment CS et SRW sont mises en œuvre en interne par Microsoft.
Merci!
La solution
Voir le livre de Joe Duffy "Programmation en temps partagé sur Windows", page 289.
La réponse à votre question est « presque ». Il y a sémantique avec acquis récursive de la CRITICAL_SECTION qui sont différentes pour ce SRWL. Si votre programme a profité de ces caractéristiques des sections critiques de Win32, vous ne pouvez pas passer à gros SRWL facilement. Vous pouvez, cependant, enveloppe un SRWL dans un emballage pour fournir CS comme la sémantique, mais il y a un tas de subtilités à le faire, vous êtes mieux coller à CS est si vous dépendez un tel comportement.
article Kenny Kerr décrit un peu plus sur la façon dont les deux sont mis en œuvre en interne .