加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

没有锁的节俭PHP单件?

发布时间:2020-12-13 15:56:18 所属栏目:PHP教程 来源:网络整理
导读:我来自C世界. 最近,我开始使用RPC框架Apache Thrift.我正在编写PHP客户端代码和Python服务器代码. 当我阅读PHP实现时,我发现以下内容: class TStringFuncFactory {private static $_instance;/** * Get the Singleton instance of TStringFunc implementati
我来自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 @ N.B.

PHP(cli或http)作为单个cpu核心上的单个线程存在,除非你做了一些真正的工作来使你的应用程序成为多线程.

How can one use multi threading in PHP applications

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读