Jér*_*nge 5 php crash release file-locking
我是PHP的新手.据我所知,flock()当两个用户访问将内容添加到可锁定文件的相同php文件时,我可以使用锁定文件并避免竞争条件.
但是,如果php进程崩溃会发生什么?等待可锁定文件的下一个用户会发生什么?如果服务器崩溃(某人拔插头)会发生什么?锁是否自动释放?重启服务器后文件是否会保持锁定状态?
为了简化,PHP是否确保正确处理这些危急情况(即未明确释放的锁定)?如果没有,应该如何处理这些情况?如何从这些中恢复?
锁由操作系统处理.因此:
除了使用操作系统提供的锁定文件机制之外,PHP不需要做任何特殊操作,所以通常你是完全安全的.
但是,如果您的Web服务器设置使得每个请求都不由新进程处理,那么如果一个请求异常终止(假设线程被中止),则锁将持续存在并阻止所有进一步的锁请求,从而快速导致一个死锁的Web服务器.这是你真的,真的不应该使用不在请求之间提供进程级别隔离的设置的众多原因之一(免责声明:我不是网络服务器专家 - 我在"不应该"部分可能是错的,甚至虽然我对此表示怀疑).
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |