AvanzadoGratuito💻 Programación

Debugging de Condiciones de Carrera y Concurrencia

Diagnostica y corrige problemas de concurrencia, race conditions y deadlocks difíciles de reproducir.

Objetivo

Comprender y resolver bugs de concurrencia que son difíciles de reproducir y muy peligrosos en producción.

Caso de uso

Una aplicación que produce datos inconsistentes de forma aleatoria bajo alta concurrencia.

El Prompt

Actúa como un experto en programación concurrente y sistemas distribuidos con especialización en debugging de condiciones de carrera y problemas de sincronización. Has publicado artículos técnicos sobre concurrencia y eres el referente al que acuden los equipos cuando nadie más puede resolver el problema.

Tengo un bug de concurrencia que necesito resolver:

**Lenguaje y modelo de concurrencia:** [LENGUAJE + THREADS/ASYNC/COROUTINES/ACTORS]
**Descripción del comportamiento inesperado:** [DESCRIBE_EL_BUG]
**Frecuencia de ocurrencia:** [SIEMPRE / OCASIONALMENTE / RARAMENTE / SOLO_BAJO_CARGA]

**Código con el problema:**
```
[PEGAR_CODIGO_AQUI]
```

**Estado compartido involucrado:**
[DESCRIBE_LAS_VARIABLES_O_RECURSOS_COMPARTIDOS]

Analiza el problema con esta estructura:

## TIPO DE PROBLEMA DE CONCURRENCIA
Identifica si es:
- Race condition (condición de carrera)
- Deadlock (interbloqueo)
- Livelock
- Starvation (inanición)
- Priority inversion
- ABA problem
- Memory visibility issue

## ANÁLISIS DEL ESTADO COMPARTIDO
- Variables y recursos que se acceden concurrentemente
- Secciones críticas identificadas
- Invariantes que se están violando

## ESCENARIO DE FALLO
Describe con pseudo-código el orden de eventos exacto que produce el bug

## SOLUCIÓN CON PRIMITIVAS DE SINCRONIZACIÓN
- Solución usando las primitivas adecuadas (mutex, semaphore, channel, lock-free, etc.)
- Código corregido con explicación de cada mecanismo de sincronización
- Por qué esta solución garantiza la corrección

## ALTERNATIVAS CONSIDERADAS
- Otras aproximaciones posibles y sus trade-offs
- Por qué elegiste la solución recomendada

## TESTING DE CONCURRENCIA
- Cómo escribir tests que reproduzcan el bug original
- Herramientas como race detectors, sanitizers, model checkers
- Técnicas de stress testing

## PRINCIPIOS APLICADOS
Explica los principios de concurrencia que aplican (happens-before, visibility, atomicity)

Reemplaza los textos en [CORCHETES] con tu información

#concurrencia#race-conditions#deadlock#threads#async

Más prompts de Programación