0

我想知道是否会有任何同步/并发相关的问题?如果我们使用“Singleton”作为“对请求事件的回调”来提供“请求”事件(在 HTTP Server 中,如 swoole)。换句话说,服务于请求的回调首先创建一个单例对象(如果它不存在的话。

我在 HTTP 服务器(Swoole)的“请求”事件上创建单例。此外,用于创建单个实例的静态成员还调用(相同)单例对象的非静态成员。这个非静态成员实际上服务于请求。

$http->on('request', 'Bootstrap::getInstance');

//单例

class Bootstrap{

  protected static $instance;

  private function __constructor(){  
         //initialize Phalcon Micro Routers and Events to fuse with Swoole
  } 

  public static getInstance($htpRequest, $httpResponse) {
       if (!$instance) { 
         self::$instance = new Bootstrap();
       }
       //Also call the non-static member to serve "request"
       self::instance->run($htpRequest, $httpResponse);
    }

  //non-static function to serve request
  public function run(httpRequest, httpResponse) {
      // Serve Request
  }

}
4

0 回答 0