Qt提供了专门的宏Q_GLOBAL_STATIC,用来实现线程安全的单例模式

Qt自己就提供了专门的宏 Q_GLOBAL_STATIC。经过这个宏不但定义简单,还能够得到线程安全性。html

一、先看官方文档安全

https://doc.qt.io/qt-5/qglobalstatic.htmlspa

https://doc.qt.io/qt-5/threads-reentrancy.html.net

 

二、再看使用方法线程

Q_GLOBAL_STATIC(Type, VariableName)
Q_GLOBAL_STATIC_WITH_ARGS(Type, VariableName, Arguments)

rule.hdebug

#ifndef RULE_H
#define RULE_H

class Rule
{
public:
    static Rule* instance();
};

#endif // RULE_H

rule.cpp指针

#include "rule.h"

Q_GLOBAL_STATIC(Rule, rule)

Rule* Rule::instance()
{
    return rule();
}

在任何地方,引用头文件 include "rule.h"code

就能够 Rule::instance()->xxxxxx()htm

 

---blog

参考文献

https://www.cnblogs.com/findumars/p/10392770.html

http://qtdebug.com/qtbook-singleton/

 

引伸阅读

https://doc.qt.io/qt-5/qthreadpool.html Qt线程池

https://doc.qt.io/qt-5/qsharedpointer.html Qt 智能指针

https://doc.qt.io/QtMQTT/index.html Qt Mqtt

 

 

发布了513 篇原创文章 · 获赞 632 · 访问量 349万+
相关文章
相关标签/搜索