php session读写锁问题

  session_start()后 对应的session文件是被锁定的,直到当前脚本结束才会解锁。
  在锁定期间,令一个进程访问相同session id 要等文件解锁后session_start()才会开始。
  解决办法是在 session 设置好数据后调用 session_write_close() 将数据写入文件并且结束session

  例如如下代码

<?php
    session_name("STEST");
    session_id("TESTID");
    session_start();
    $_SESSION["count"]=0;
    session_write_close();
    sleep(10);
    echo "success";
?>

  如果不加入session_write_close();
  并发3个进程访问该页面,第一个进程执行10秒 第二个执行20秒 第三个执行30秒。
  加入session_write_close()后  
  并发3个进程会同时在10秒后执行完成

posted @ 2013-02-06 09:29  胡尐睿丶  阅读(250)  评论(0)    收藏  举报