我有一个相当基本的 PHP 脚本,可以将数据缓存到文本文件中。我需要想出一个解决方案来防止脚本的两个正在运行的实例同时写入文件。我已经查看了 PHP 群函数,但是,PHP 手册(http://php.net/manual/en/function.flock.php)提到了一个很大的限制:
在某些操作系统上,flock() 是在进程级别实现的。当使用像 ISAPI 这样的多线程服务器 API 时,您可能无法依靠 flock() 来保护文件免受在同一服务器实例的并行线程中运行的其他 PHP 脚本的影响!
关于这个警告,我有两个问题希望有人能回答。首先,我如何检查我的flock 实现是否在进程级别完成?顺便说一句,我正在使用 cPanel 运行 CentOS。
其次,如果我的实现是在进程级别,这是否意味着我的脚本的一个运行实例不会知道同一脚本的另一个运行实例完成的锁定?还是脚本实例在单独的线程而不是单独的进程上运行?非常感谢对此的任何澄清。
谢谢。