0

我将 xampp 与 apache php 服务器一起使用

我将请求 A 发送到服务器并使其保持忙碌。然后在服务器完成执行之前我发送另一个立即请求B。但是服务器在完成A请求的先前执行之前不会响应B,让B在客户端继续等待。所以我希望服务器不会自动对来自客户端的请求进行多线程处理。我的问题是

  1. 就是它

    客户端是为了在发送下一个请求之前接收上一个请求的响应?我尝试将 ajax 设置为同步,但它仍然无法正常工作

    或者

    我们可以使用php多线程特性来处理它

  2. 如果有办法,我们可以在请求之间共享资源吗?假设 req A 将一些值放入 $_SESSION 并且 req B 想要读取它

4

1 回答 1

1

确保不要混淆特定 PHP 进程是多线程的与 Web 服务器本身是多线程的。PHP 并不真正支持 PHP 代码中的多线程。但是,服务器是多线程的,可以同时处理多个 PHP 请求。

当您发送请求“A”时,网络服务器将开始在新线程中处理该请求。当请求“B”进来时,服务器将启动另一个新线程来处理它。如果“B”在“A”完成之前启动,那么它们将同时运行,但实际上没有办法同步它们。

如果“A”需要在“B”有意义之前完成,你真的需要让客户端等到它听到“A”完成,然后发送请求“B”。通常的方法是让“A”请求的“成功”代码发送请求“B”。

如果您希望“B”从“A”设置的会话中读取某些内容,您肯定需要确保“A”在执行“B”之前在客户端完成。

于 2012-07-15T02:14:56.397 回答