这是一个理论上的问题,来自于编程和服务器方面经验不足的人,但现在就是这样。
如果我在服务器上存储了PHP文件,如果有多个人同时开始访问此脚本会发生什么?多个请求堆叠还是可以并行处理?我应该注意什么才能更好地理解服务器的工作方式?
我希望这是有道理的!
答案 0 :(得分:9)
webserver (例如Apache)通常能够同时处理多个请求(Apache默认为200或400)。
如果请求对应于只读情况,则应该没有任何问题:多个进程可以同时读取同一个文件 - 如果该文件是PHP脚本,则多个进程可以在同一时间。
如果您的脚本正在查询数据库,那么应该没有太多问题:数据库用于处理并发情况(即使读取比写入更好,可能必须堆叠,如果它们修改相同的数据)。
如果你的脚本试图写入文件,你应该放置一些锁定机制(例如使用flock
),以避免这种情况;因此,在写入之前,每个进程都会等到文件没有其他写入。
答案 1 :(得分:5)
这几乎不是问题,因为现代操作系统很乐意让多个进程同时读取给定文件。 (即:它们是并行处理的。)
但是,如果某个给定文件需要同时由多个脚本写,那么PHP将有效地“堆叠”试图获得写访问权限的页面,直到文件变为再次可用。