当前位置:首页 > 日记 > 正文

PHP编程中的Session阻塞问题与解决方法分析

PHP编程中的Session阻塞问题与解决方法分析

本文实例讲述了PHP编程中的Session阻塞问题与解决方法。分享给大家供大家参考,具体如下:

使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁。不同浏览器不会出现这种情况。

疑问:是不是session_start导致了阻塞?

于是,我写了几个页面测试了一下,发现是session导致了阻塞,而其他两种情况不会造成阻塞。

查了下PHP的Bug列表,发现有人提出了这个问题:

Description:
------------
Calling session_start() appears to wait until other scripts have exited

that are using the same session. My guess is the 1st request locks the
session file for exclusive use, and the second request blocks until it
can open it.

PHP官方的回复是:

Thank you for taking the time to write to us, but this is not a bug.This is expected, the session file is locked to avoid corruption.

结合了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函数即可。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中cookie用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHP中substr_count | 函数获取子字

PHP中substr_count | 函数获取子字

函数,方法,子字符串,次数,电脑软件,本文实例讲述了PHP中substr_count()函数获取子字符串出现次数的方法。分享给大家供大家参考,具体如下:PHP中的substr_count()可用于计算指定字符串中子字符串出现的次数。substr_count()函数定义如下:substr…

photoshop调出Lomo风格风景图

photoshop调出Lomo风格风景图

风格,风景图,电脑软件,photoshop,Lomo,   相信很多人都知道LOMO风格,一种增强图片层次感和颜色的对比度,在加上暗角的效果,这次的教程就是用ps为风景照片调出LOMO的效果,下面我们一起来学习吧,photoshop调出Lomo风格风景图教程原图:…

excel高级筛选怎么使用

excel高级筛选怎么使用

筛选,高级,电脑软件,excel,excel高级筛选怎么使用呢?对于大部分人来说,仅仅停留于excel自动筛选是远远不够满足需求的,还要学会excel高级筛选功能,今天小编就给大家详细讲解一些excel高级筛选的使用方法。方法步骤如下:1、首先我们打开一个工资…

win7系统怎么安装字体?

win7系统怎么安装字体?

系统,字体,安装,电脑软件,Windows7系统是一款中国人非常喜欢的操作系统,win7系统怎么安装字体?接下来小编详细的介绍一下用户如何安装字体。win7安装字体一、在xp系统中安装字体是非常方便的,只需要将自己需要的字体下载下来,然后直接复制到字…

PS怎么将靴子变成手绘稿?

PS怎么将靴子变成手绘稿?

手绘,电脑软件,PS,详情页需要靴子产品的手绘图纸,但是没有手稿,该怎么办呢?我们可以将图片中的靴子直接转换为手稿图,下面我们就来看看详细的教程。软件名称:Adobe Photoshop CS6 官方中文正式版软件大小:1.3GB更新时间:2013-04-171、打开Adobe Ph…

PPT/WORD文档无法打开怎么办

PPT/WORD文档无法打开怎么办

文档,无法打开,电脑软件,PPT,WORD,大家是否经常遇到在网上下载的PPT文档或者WORD文档无法打开的情况?在打开时,总会弹出对话框显示:Word在试图打开文件时遇到错误。 请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空…

PHP基于socket实现客户端和服务端

PHP基于socket实现客户端和服务端

服务端,客户端,功能,电脑软件,PHP,本文主要介绍了PHP基于socket实现的简单客户端和服务端通讯功能,可实现服务端接收客户端发送的字符串进行翻转操作后返回客户端的功能,需要的朋友可以参考下服务端:<?php set_time_limit(0); $host="localho…

excel加密的表格破解处理教程excel

excel加密的表格破解处理教程excel

加密,破解,教程,表格,电脑软件,  Excel中经常需要使用到加密破解的技巧,加密的表格具体该如何进行破解处理呢?下面是由小编分享的excel加密的表格破解处理教程,以供大家阅读和学习。excel加密的表格破解处理教程 破解加密步骤1:这里有份加密…

painter怎么使用画笔中条纹效果和

painter怎么使用画笔中条纹效果和

效果,霓虹灯,条纹,电脑软件,painter,Painter中的外观选择中有很多效果,想要绘制莲花图案,该怎么绘制呢》下面我们就来看看详细的教程。软件名称:Corel Painter 2017 简体中文包 1.0 汉化版软件大小:15MB更新时间:2016-08-271、打开Painter软件,鼠…

CDR文本怎么排版? cdr调整文本间距

CDR文本怎么排版? cdr调整文本间距

文本,行间距,调整,间距,技巧,cdr中想要调节文字的行间距来达到排版的效果,该怎么调节呢?下面我们就来看看详细的教程。 软件名称:CorelDRAW X8 64位 简体中文安装免费版(附序列号)软件大小:547.9MB更新时间:2016-11-231、打开电脑桌面上的CorelD…

PS怎么合成炫酷的线条人物穿插效果

PS怎么合成炫酷的线条人物穿插效果

线条,海报,效果,人物,电脑软件,我若拿起武器,就无法拥抱你;我若放下武器,便无法保护你?NO,美国队长说我可以,我可以拿着武器抱着你。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-04大家好我是你们的三先生,今…

AI怎么设计一个环球图标?

AI怎么设计一个环球图标?

图标,环球,电脑软件,AI,ai中想要绘制一个环球图标,该怎么绘制这样一个图标呢?下面我们就来看看详细的教程。软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64位)软件大小:205MB更新时间:2014-05-111、打开AI软件,新建文档,选择【…