¿Cuándo son las estructuras de datos libres de bloqueo menos efectivas que la exclusión mutua (exclusión mutua)?

Leí en algún lugar (ya no puedo encontrar la página) que las estructuras de datos de bloqueo libre son más eficientes "para ciertas cargas de trabajo", lo que parece implicar que a veces son más lentas o la ganancia de ellas puede ser cero en algunas situaciones. Tomar el golpe de ~ 100 ciclos de una instrucción de bloqueo para hacer una operación atómica me suena mucho más rápido que dormir y esperar a que el programador vuelva a activar el proceso, por lo que no es obvio en qué circunstancias una estructura de datos sin bloqueo Sería menos preferible que las mutex antiguas. Si el bloqueo está disponible el 99% del tiempo y el proceso no tiene que irse a dormir, ¿es un mutex más rápido? ¿Existe una buena regla general para saber qué camino tomar, suponiendo que haya disponible una estructura de datos sin bloqueo adecuada?

Respuestas a la pregunta(6)

Su respuesta a la pregunta