2010-08-17 10 views
6

Si la aplicación está dirigida a Windows Vista o posterior, ¿podríamos reemplazar todos los critical sections con SRW locks? Como la sección crítica es mutuamente exclusiva, para el uso es equivalente a las cerraduras SRW en modo exclusivo, ¿verdad? Según MSDN, SRW está optimizado tanto para la velocidad como para el espacio. ¿Hay algún inconveniente para hacer esto? No estoy seguro de cómo CS y SRW son implementados internamente por Microsoft.Reemplazar la sección crítica con bloqueo SRW

Gracias! libro

Respuesta

7

Ver Joe Duffy "Programación Concurrente en Windows", página 289.

La respuesta corta a tu pregunta es "casi". Hay semánticas con CRITICAL_SECTION adquirido recursivamente que son diferentes para los SRWL. Si su programa aprovechó estas características de las secciones críticas de Win32, entonces no puede cambiar fácilmente a SRWL. Sin embargo, podría envolver un SRWL en un contenedor para proporcionar semántica similar a CS, pero hay un montón de sutilezas al hacerlo, por lo que es mejor que se adhiera a las CS si depende de dicho comportamiento.

Kenny Kerr's article describe un poco sobre cómo ambos se implementan internamente.

Cuestiones relacionadas