[PHP] session_write_close()的作用
2023-02-18 15:41:54 时间
简单地说,当开启session_start以后,这个session会一直开启,并且被一个用户使用。其他用户开启session的话要等待第一个session用户关闭以后才可以开启session,这样就造成了session阻塞。而session_write_close()可以解决这个session阻塞机制。
解决session阻塞问题的办法:在session操作完成后调用session_write_close()即可避免此问题;
下面是session阻塞案例:
案例一:
使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁。不同浏览器不会出现这种情况。
结合了PHP的Session机制,找到了阻塞的原因。由于PHP的Session信息是写入文件的,1个客户端占有1个session文件。因此,当 session_start被调用的时候,该文件是被锁住的,而且是以读写模式锁住的(因为程序中可能要修改session的值),这样,第2次调用 session_start的时候就被阻塞了。
最简解决方法:
查了PHP的手册,发现一个session_write_close函数,作用是Write session data and end session,也就是写session的数据,同时关闭这个session。因此,我们可以在用完session之后,调用这个函数关闭session 文件即可解除锁定。一般,session是用来记录用户身份信息的,以便PHP进行身份认证,因此完全可以将session的读写放在页面刚开始执行的时 候,在执行完以后,马上调用session_write_close函数即可。
相关文章
- 机器学习——最大熵模型
- 机器学习——最优化问题:拉格朗日乘子法、KKT条件以及对偶问题
- 机器学习——逻辑回归(Logistic Regression)
- 机器学习——EM算法
- 机器学习——贝叶斯分类器
- 机器学习——朴素贝叶斯法
- 论文解读(SimCLR)《A Simple Framework for Contrastive Learning of Visual Representations》
- 机器学习——数据增强
- 机器学习——正则化方法Dropout
- ResNet
- 机器学习——最小二乘法
- 机器学习——K-Means算法
- 机器学习——K近邻算法(KNN)
- 聚类:主要聚类算法
- 机器学习——输入空间、特征空间、输出空间
- 机器学习——线性回归
- 机器学习——决策树
- 机器学习——梯度下降法
- 深度学习——概率与信息论
- 机器学习——信息论基础