想象一个网站,其中有多个用户使用不同的IP登录,每个用户都尝试使用相同的PHP代码同时执行相同的操作-例如,使用AJAX将图像上传到文件夹或将某些文本上传到数据库。
脚本将如何对此作出反应?
答案 0 :(得分:1)
php脚本不是请求所独有的。如果在另一个请求的脚本仍在运行时有一个新请求,则将处理每个请求,该请求将在新线程中处理(取决于Web服务器和配置,其上限为certian限制)。一旦达到了句柄限制,请求将被暂停,那么足够的单位资源就可以释放来处理新请求。
答案 1 :(得分:1)
几个用户一次执行相同的PHP代码没有先验问题。但是,代码本身应注意,它可以同时执行并处理这种情况,尤其是在访问共享资源(例如磁盘或数据库上的文件夹)时。例如,它不能假定要插入数据库的行的ID或它创建的文件的名称,而必须在安全的范围内(例如,使用auto_increment
列或命名文件)生成它们通过使用UUID)。
答案 2 :(得分:0)
有多少用户连接到您的apache服务器(当然很重要,但是对于这个问题,可以说很少使用)。 当用户连接到服务器并且php脚本执行时,每个用户将从服务器的线程池中分配一个线程。 因此,将并行处理每个用户的任务。直到达到服务器的线程限制
如果发生这种情况,您将需要通过添加新服务器来平衡负载并从服务器分配负载