c multithreading data-structures concurrency synchronization

Prueba de estructuras de datos concurrentes



multithreading data-structures (1)

¿Cómo se puede probar prácticamente una estructura de datos sincronizada (en C)?

Disparar un par de hilos y hacer que compitan por el acceso a la estructura por un tiempo para ver si algo sale mal no suena muy seguro.

EDITAR en respuesta a comentarios: me refiero a que hay varios subprocesos que ejecutan funciones que operan en el mismo conjunto de datos, con algún tipo de estrategia de sincronización (banderas / semáforos / CAS bloqueado / etc.) para presumiblemente eliminar las condiciones de carrera y los interbloqueos. El problema es probar de forma programática la sincronización correcta de los trabajadores.


Nadie sabe realmente cómo hacer esto con 100% de confiabilidad. Aquí hay solo un ejemplo de una herramienta de prueba para encontrar errores de concurrencia.