被中国程序员启蒙老师w3school误导了

几天前,写了个YurunLock,这是PHP阻塞锁和非阻塞锁机制,内置解决并发锁重复执行的方案。目前支持文件、Redis、Memcache、Memcached。

里面用到了文件锁,最开始文件解锁的时候我是直接fclose,因为看到w3school里说:

可以通过 fclose() 来释放锁定操作,代码执行完毕时也会自动调用。

后来群里@小黑屋 说这是在php5.3之前的了,于是我上php官网看了一下。。。

flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。

在 PHP 5.3.2版本之前,锁也会被 fclose() 释放(在脚本结束后会自动调用)。

PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部文件的一种轻便方法。 默认情况下,这个函数会阻塞到获取锁;这可以通过下面文档中 LOCK_NB 选项来控制(在非 Windows 平台上)。

好坑!看来w3school已经几十年不更新了,有时候也不能全信啊。。

  • 标签
  • 发表评论
当前用户:
  • 评论列表
  • tester 2017-08-31 14:04:48

    <script>alert('123')</script>

    • 宇润 2017-09-02 15:11:42

      你还是比较naive的,图样图森破

  • 姜辰 2017-07-16 14:48:12

    前来膜拜大佬~~~