gpt4 book ai didi

php - 没有锁的 Thrift PHP 单例?

转载 作者:可可西里 更新时间:2023-10-31 23:39:32 26 4
gpt4 key购买 nike

我来自 C++ 世界。

最近,我开始使用 RPC 框架 Apache Thrift。我正在编写 PHP 客户端代码和 Python 服务器代码。

当我阅读 PHP 实现时,我发现以下内容:

class TStringFuncFactory {
private static $_instance;

/**
* Get the Singleton instance of TStringFunc implementation that is
* compatible with the current system's mbstring.func_overload settings.
*
* @return TStringFunc
*/
public static function create() {
if(!self::$_instance) {
self::_setInstance();
}

return self::$_instance;
}
....
}

这是没有锁的单例。

问题

PHP的处理模式是什么?它是否保证不会发生这种风险情况。

最佳答案

+1 @注意

PHP(cli 或 http)作为单个 cpu 内核上的单个线程存在,除非您进行一些实际工作以使您的应用程序成为多线程。

How can one use multi threading in PHP applications

对于 HTTP 端,每个 PHP 执行都随着请求周期而生死。服务器可能同时处理多个请求,这将导致多个并发的 PHP 执行,但每个请求都完全独立于下一个。

所以基本上这不是问题。出于所有意图和目的,检查静态数据成员是否满足单例模式。

关于php - 没有锁的 Thrift PHP 单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30613819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com