En la entrada anterior os contaba que había realizado un pequeño truco para que el programa funcionase. Esto es debido al acceso concurrente.
Tabla de contenidos
Esto de acceso concurrente a un recurso puede parecer a simple vista algo raro o complejo de entender, así que veámoslo con un ejemplo:
Si por ejemplo tenemos dos teléfonos fijos en casa, que los llamaremos A y B en la mayoría de los casos solo uno de los dos puede utilizar la línea para hablar. Así si A y B se ponen a llamar a la vez seguramente ocurrirá que se entrecruzan las conversaciones y hay interferencias entre las mismas. Por ello si A está llamando B tiene que esperar a que A acabe de usar la línea para luego utilizarla él.
Normalmente se suele utilizar estas dos palabras como terminología básica en el acceso concurrente:
Uno de los primeros pasos que debemos realizar al trabajar con programación paralela es la identificación de cuales son nuestros recursos, si admiten acceso concurrente y cuales son los usuarios para cada recurso.
En el artículo anterior había un ejemplo de acceso concurrente a un recurso, ya que tenemos dos procesos (dos usuarios), el usuario padre y el usuario hijo y los dos quieren escribir a la vez en la salida por pantalla (stdin).
Hay varias maneras de gestionar este tipo de problemas, que son muy pero que muy frecuentes trabajando con paralelismo. Para ello se pueden tomar distintas soluciones:
Si tenéis ganas de realizar una prueba sobre esto, coger el código anterior, quitar el sleep e introducir un texto más grande para sacar por pantalla y veréis que en algunas ejecuciones se entrecruzan los datos.
Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…
Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…
Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…
Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…
Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…
Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…