PHP中是否存在两个静态方法的并行调用?

时间:2016-05-26 09:54:51

标签: php web concurrency static server

如果两个并行线程调用相同的静态方法会发生什么?

是否会使一个线程等待或者是否存在静态方法的两个并行实例?

假设函数不使用成员变量,只使用局部变量。

示例:

<?php

    public class ClassName{

        public static function doStuff(){
            // Function code goes here
        }
    }

?>

假设GET request向服务器调用此函数。然后,如果两个用户同时准确地向URL发送呼叫,那么会发生什么?

1 个答案:

答案 0 :(得分:1)

请参阅Confirmation that PHP static variables do not persist across requests了解您需要的信息。

标准PHP不会进行任何锁定或等待。它将只运行该方法,并且2个单独的请求彼此不知道,并且它们无法访问彼此的内存(在给定的情况下)。

这是竞争条件。这取决于首先处理哪个请求。 http请求由Web服务器处理,Web服务器生成一个php进程来处理php脚本。