WorkThread *WorkThread::m_instance=nullptr; WorkThread *WorkThread::instance() { static QMutex s_mutex; QMutexLocker lock(&s_mutex); if(!m_instance){ m_instance=new WorkThread(); } return m_instance; } void WorkThread::initVariable() { inputImei = ""; mVersion = ""; }
时间: 2024-04-02 14:35:39 浏览: 159
qthread示例
这是 WorkThread 类的三个成员的定义和实现。其中,静态成员变量 m_instance 用于存储 WorkThread 类的唯一实例;静态成员函数 instance() 用于获取该实例;成员函数 initVariable() 用于初始化类的变量。
initVariable() 函数很简单,它只是将 inputImei 和 mVersion 变量的值都设置为空字符串。这个函数可以在类的对象创建之后调用,以确保这些变量的初始值是正确的。
instance() 函数使用了双重检查锁定模式来保证线程安全,它返回静态成员变量 m_instance 的指针。如果 m_instance 尚未创建,则会创建一个新的 WorkThread 对象并将其赋值给 m_instance。由于 m_instance 是静态变量,因此可以在类的所有对象之间共享,并且在程序生命周期内只会创建一个实例。
需要注意的是,instance() 函数返回的指针是指向 WorkThread 类的唯一实例的指针,因此在使用该指针时应该确保该实例已经被创建。否则,程序可能会出现未定义的行为。
阅读全文