• 技术文章 >后端开发 >php教程

    PHP中关于flock的有关问题

    2016-06-13 13:48:55原创628

    PHP中关于flock的问题
    关于flock的问题,我在博客上整体了下,http://www.shionco.com/archives/php_flock.html

    例程代码:

    $fd = fopen('./a.html', 'wb');
    if ($fd) {
    if (@flock($fd, LOCK_EX|LOCK_NB)) {
    echo '未锁,打开文件并加锁';
    sleep(10);
    } else {
    print '已锁,关闭文件';
    }
    fclose($fd);
    } else {
    echo '打开文件失败';
    }

    我在FF下,建立2个页面,打开第一个页面运行,独占锁定成功,进入延时状态,马上打开第2个页面运行,结果第2页发生阻塞,等到第1页运行结束,第2页也独占锁定成功,进入延时状态,执行完毕,明明使用了LOCK_NB,但并未发生独占锁定失败。无论是新建标签页或新窗口都会发生阻塞!

    然而在IE下(我使用的是IE9,别的未测试),同样的流程,第2页直接独占锁定失败,输出"已锁,关闭文件";

    如果是这样,FF的客户端大量浏览发生内容更新的缓存文件,岂不是都会阻塞?



    ------解决方案--------------------
    你可以这样验证,再创建一个文件,包含上述代码

    试着用标签式浏览器分别打开这两个文件,,,,看看是否达到你的需求。。如果是,就是上述原因

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp flock LOCK html quot
    上一篇: 百度站内搜索 怎么实现 iframe 形式的现实 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊php怎么让Swoole/Pool进程池实现Redis持久连接• 一文解析PHP元转分的错误示范(附代码实例)• PHP+Socket系列之实现websocket聊天室• PHP+Socket系列之IO多路复用及实现web服务器• PHP+Socket系列之实现客户端与服务端数据传输
    1/1

    PHP中文网