¿por qué utilizar memoria_order_seq_cst Involucrar:
hilos de asignación de hilo principal hilos
while (!stop.load(std::memory_order_relaxed)) { // Perform tasks }
análisis:
mo_relaxed La latencia de observar los cambios en las banderas Stop o Keep_running es crucial.
No está claro por qué Sutter aconseja contra las operaciones relajadas de la tienda. Sin embargo, el estándar ISO C no especifica el tiempo de visibilidad del almacén o los factores que lo afectan. Las implementaciones solo tienen el mandato para garantizar la visibilidad dentro de un período finito.
Inter-Hermedador de latencia e implementación:
La latencia entre thread está determinada principalmente por la implementación. Implementaciones del mundo real Cerre los mecanismos de coherencia de caché de hardware, que generalmente dan como resultado una baja latencia (decenas de nanosegundos) para la visibilidad de la tienda.
ni seq_cst órdenes de memoria relajadas aceleran la visibilidad del almacén; Simplemente controlan el comportamiento de las operaciones posteriores en relación con la tienda o la carga. Los pedidos más fuertes no aceleran los eventos, sino que retrasan otras operaciones hasta que se mantenga el pedido especificado.
Visibilidad relajada y coherencia de caché de hardware:
en hardware real con coherencia de caché, los pedidos de memoria no mejoran la tiempo de visibilidad del almacén; Ellos únicamente gestionan la capacidad de las operaciones posteriores para volverse a nivel mundial antes del compromiso de almacenamiento.
del orden de memoria relajada para el indicador de detener:
Los beneficios principales de la orden de memoria relajada para verificar el indicador de parada son:
Evitar la ejecución de instrucciones innecesarias, especialmente en ISAS donde adquirir o SEQ_CST requieren instrucciones adicionales (E.G., ARMV7 DMB ISH).
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3