Al programar con múltiples subprocesos, ¿será más rápido utilizar una estructura sin bloqueo que una estructura bloqueada?
El propósito de utilizar estructuras sin bloqueos en la programación multiproceso es resolver uno o más de los siguientes problemas:
1: Interbloqueos que pueden ser causado por excepciones
p>2: bloqueo causado por una granularidad de bloqueo demasiado grande
3: consumo de recursos y cambio de contexto causado por agregar y desbloquear
4: prioridad inversión o bloqueo de escolta
5: Espera. ... p>4: Se produce inversión de prioridad o escolta de bloqueo
5: Espere...
Como puede ver, la estructura sin bloqueo es mejor que la estructura bloqueada Reducir El consumo de recursos (y en cierto sentido, la reducción del consumo de tiempo) es sólo un aspecto.
Desde una perspectiva de programación, el código para implementar una estructura sin bloqueos es más complejo que una estructura basada en bloqueos, y el aumento de la complejidad también conducirá a un aumento en el tiempo de ejecución. Esto no se puede generalizar. Lo más importante es elegir entre bloquear y no bloquear según sus propios escenarios y necesidades comerciales