【发布时间】:2018-04-28 23:24:42
【问题描述】:
假设我有这样的课程
class foo
{
void foo()
{
std::thread t(std::bind(&foo::doSomething,this));
t.detach();
}
void doSomething()
{
while(true)
{
//Does some stuff here
}
}
};
我的问题是在上述情况下,如果 foo 类破坏了分离的线程也会终止吗?从我目前的观察来看,它似乎确实退出了。另外我相信这是因为线程可以访问实例的成员变量,并且一旦调用析构函数,这些成员变量就不再存在,所以有意义断定线程也退出了。如果我的理解有误,请纠正我。另外,如果线程不访问成员变量,如果类破坏它仍然会退出吗?
【问题讨论】:
标签: multithreading c++11