会话必须同步。当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
?