看一下以下示例,
#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;
}
创建具有自己线程的全局对象的后果是什么?这是安全的方法吗?如果不是,假设对象必须是全局的并且具有独立的线程,有哪些替代方案?谢谢。
答案 0 :(得分:-1)
如果否,有什么替代方案。
Lazy evalutation:在第一次实际需要之前不要创建线程。