如何处理服务器上的一个文件的多个请求?

Ale*_*lex 14 php request

这是一个理论问题,来自于编程和服务器方面经验不足的人,但是这里有.

如果我在服务器上存储了PHP文件,如果有多个人同时开始访问此脚本会发生什么?多个请求堆叠还是可以并行处理?我应该怎样查看才能更好地了解服务器的工作原理?

我希望这是有道理的!

Pas*_*TIN 9

Web服务器(例如Apache)通常能够同时处理多个请求(Apache的默认值为200或400).

如果请求对应于只读情况,则应该没有问题:多个进程可以同时读取同一个文件 - 如果该文件是PHP脚本,则多个进程可以同时执行它.

如果您的脚本正在查询数据库,那么应该没有太多问题:数据库用于处理并发情况(即使读取比写入更好,如果它们修改相同的数据,也可能必须堆叠).

如果你的脚本试图写入文件,你应该放置一些锁定机制(flock例如,使用),以避免这种情况; 因此,在写入之前,每个进程都将等待,直到没有其他写入文件为止.


Joh*_*ker 5

这几乎不是问题,因为现代操作系统很乐意让多个进程同时读取给定文件.(即:他们并行"处理".)

但是,如果某个给定文件需要同时由多个脚本写入,那么PHP将有效地"堆叠"试图获得写访问权限的页面,直到该文件再次可用.