PHP session_start сериализует и блокирует все остальные, совместно использующие тот же сеанс
сеанс должен быть синхронизирован. когдаA
пишет / сохраняет вsession
B
или жеanother A
находится в ожидании. Что является обязательным условием для обработки файловых сессий.
Но однаждыA
загрузил сеанс (но теперь сохранил его модификации)B
Также должно быть разрешено загружать тот же сеанс. потому что загрузка откроет файл и принесет содержимое файла в память и закроется.
Есть ли причина блокировать все остальные скрипты на все времяA
загружает сессию иA
сохраняет сеанс не может ли синхронизация быть выполнена только с помощью обработчика сохранения?
Таким образом, два PHP-скрипта не могут работать одновременно, если они совместно используют один и тот же сеанс.
напримерseslock.php
<?php
header('Content-Type: text/plain');
session_start();
if(isset($_GET['wait'])){
sleep(30);
echo "waiting\n";
}else{
echo "No Waiting\n";
}
?>
done
визитseslock.php
ответит сразу, ноseslock.php?wait
займет 30 секунд, чтобы ответить. Но проблема в том, если вы запрашиваетеseslock.php?wait
первый и единственныйseslock.php
второй. событиеnon-sleep
Блок попросит вас подождать и 30 секунд.
Почему это блокирует не мой вопрос. Я спрашиваю, почему это блокируетstart to save
? вместо блокировкиonly save
?