【问题标题】:Is it safe to create a global object that has an independent thread?创建具有独立线程的全局对象是否安全?
【发布时间】:2017-07-18 17:24:12
【问题描述】:

看看下面的例子,

#include <iostream>
#include <thread>

class GPS 
{
public:
    GPS()  { this->init();  }
    ~GPS() {m_thread.join();}
private:
    std::thread m_thread;
    void init()   { m_thread = std::thread(&GPS::update,this); } 
    void update() { /*get data from gps sensor.*/ }; 
};

GPS myGPS;

int main()
{
    return 0;
}

在全局范围内创建一个拥有自己线程的对象的后果是什么?这是安全的方法吗?如果否,假设对象必须是全局的并且具有独立线程,有哪些替代方案?谢谢。

【问题讨论】:

标签: c++ multithreading c++11 stdthread


【解决方案1】:

如果没有,有什么替代方案。

惰性评估:在第一次真正需要之前不要创建线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 2016-11-14
    相关资源
    最近更新 更多