PHP session_start serializa y bloquea a todos los demás que comparten la misma sesión
la sesión debe estar sincronizada. CuandoA
escribe / guarda ensession
B
oanother A
se pone en espera. Que es una necesidad para el manejo de sesiones basado en archivos.
Pero una vezA
ha cargado la sesión (pero ahora ha guardado sus modificaciones)B
También se debe permitir cargar la misma sesión. porque la carga abrirá el archivo y traerá el contenido del archivo a la memoria y se cerrará.
¿Hay alguna razón para bloquear todos los demás scripts durante todo el tiempo?A
carga de sesión yA
guarda la sesion ¿No se puede hacer la sincronización solo con guardar controlador?
Por lo tanto, dos scripts PHP nunca pueden funcionar simultáneamente si comparten la misma sesión.
por ejemploseslock.php
<?php
header('Content-Type: text/plain');
session_start();
if(isset($_GET['wait'])){
sleep(30);
echo "waiting\n";
}else{
echo "No Waiting\n";
}
?>
done
visitarseslock.php
responderá inmediatamente peroseslock.php?wait
Tardará 30 segundos en responder. Pero el problema es si pidesseslock.php?wait
primero y unicoseslock.php
segundo. evento elnon-sleep
bloque le pedirá que espere 30 segundos también.
Por qué el bloqueo no es mi pregunta. Estoy preguntando porque bloqueastart to save
? en lugar de bloquearonly save
?