Condición de carrera

Una condición de carrera (también llamada peligro de carrera) es un problema en el diseño de un sistema. En una condición de carrera, el resultado de un cálculo o el comportamiento del sistema en su conjunto depende del tiempo que dure un determinado cálculo o del momento en que se inicie. Las condiciones de carrera se dan en los circuitos lógicos y en los programas informáticos, especialmente en los sistemas multihilo o distribuidos.

 

Ejemplo

A menudo es difícil explicar qué es una condición de carrera, pero la metáfora de una carrera de caballos puede servir de explicación.

Un programa de ordenador es como una carrera de caballos. El programa de ordenador hace varias cosas al mismo tiempo, de forma similar a como corren varios caballos al mismo tiempo en una carrera de caballos. Cada caballo representa lo que se suele llamar un hilo de ejecución. Así, uno de estos hilos puede encargarse de la comunicación de red, otro puede ser responsable de redibujar la interfaz de usuario. En el caso de una condición de carrera, la aplicación funciona correctamente si un determinado caballo gana la carrera. Por ejemplo, la aplicación puede funcionar si el caballo número cinco gana, pero se bloqueará si cualquier otro caballo gana la carrera. Una solución al problema es utilizar la sincronización. Esto es como si varios jinetes formaran un equipo para asegurarse de que el caballo número cinco va por delante.

En diferentes ordenadores, o en diferentes situaciones, los programas informáticos pueden funcionar a diferentes velocidades. A veces, serán más rápidos, otras veces más lentos. Esto puede significar que en algunos sistemas, la condición de carrera nunca aparecerá, aunque sea fácil que aparezca en otros. Las condiciones de carrera pueden ser difíciles de encontrar. Los errores causados por las condiciones de carrera son una fuente frecuente de frustración en la profesión del desarrollo de software.

 

AlegsaOnline.com - 2020 / 2023 - License CC3