
17/01/2012, 17:23
|
| | Fecha de Ingreso: agosto-2008
Mensajes: 96
Antigüedad: 16 años, 7 meses Puntos: 3 | |
Respuesta: Exclusion mutua PHP acceso a MySQL Pues con "Exclusión mutua en region critica" me refiero a que tengo un pedazo de mi código en PHP que hace una consulta a un elemento de una base de datos mysql y que modifica ese dato en función de su valor, al ser una aplicación web un cliente A puede intentar modificar el dato, mientras un cliente B lo lee, con lo cual quiero hacer la consulta y modificación del valor en Exclusion mutua, y a este pedazo de código se le llama region critica.
Por ejemplo: tenemos cliente A y cliente B
Y el codigo:
...
...
Lee mysql(datoX);
if datoX == x
Escribe mysql(datoX = Y);
y puede suceder lo siguiente, ya que nosotros no controlamos el planificador del sistema operativo del servidor.
Cliente A -> Lee mysql(datoX); "Ya tenemos el valor del dato"
if datoX == x "Entra en el if, ya que el dato fue leido antes"
Cliente B -> Lee mysql(datoX); "Ya tenemos el valor del dato"
if datoX == x "Entra en el if, ya que el dato fue leido antes"
Escribe mysql(datoX = Y); "El dato esta modificado"
Cliente A -> Escribe mysql(datoX = Y); ¡¡¡¡ ERROR !!!!
Si suponemos que el dato afecta al usuario.. el cliente A modificaria el dato que esta siendo usado y antes modificado por B, teniendo B un valor erroneo del dato. |