php的疑虑.如果两个人同时访问同一个脚本会发生什么?


php doubts. what happens if two people access the same script at the same time?

我做了一个PHP搜索引擎一段时间前,现在我有这个疑问,我已经搜索了它,看到很多问题在这里堆栈溢出谈论多个同时访问PHP脚本,但只关于追加,修改等…

假设我的搜索引擎(或任何其他基于用户输入生成不同响应的脚本)需要20秒才能结束搜索。

用户A访问脚本

用户B比用户A晚10秒访问脚本(所以脚本还没有"回答"用户A)

会发生什么?服务器会"执行文件的另一个实例",这样两个用户都能得到他们的响应,还是会出现一些混乱?

如果一个PHP脚本需要很长时间来完成执行,一个人访问它,然后离开没有等待响应,PHP脚本仍然会做它必须做的一切,直到它到达结束?(逻辑告诉我,在最后一个问题上,脚本将做所有事情,直到它达到最后,因为人只是发出请求,然后等待答案来,如果它关闭仍然没有什么会阻止PHP脚本执行,但我仍然在问,因为我想要完全确定)

两个人都有自己的脚本实例。如果修改数据,仍然可能存在数据一致性方面的问题。由于HTTP是一种无状态协议,您不知道是否有人在没有等待结果的情况下离开,脚本将运行到最后。

每个用户的会话进程都有一个线程。每件事都在队列中,没有什么是混乱的。

但在某些情况下可能会出现问题。

ex:一个用户请求数据库中的某个字段,但是当第一个用户的线程正在等待或挂起时,另一个用户删除了该字段。但它确实是后方的,如果发生了一个异常将是王位,这是我们的脚本的责任来处理它。