boost ::线程分段错误

时间:2012-02-23 12:48:59

标签: c++ boost-thread

我有Runnable类。其中,我使用以下函数来启动新线程:

      start()
      {
           status_ = RUNNING;
            mythread_ = boost::thread(boost::ref(*this)); // Line 2
      }

我有从Runnable派生的Controller类。 我想使用start()函数

为Controller创建线程

所以,在Controller启动功能中,

我用:

controller_->start()

创建一个新线程;

但最终导致第2行的分段错误。

知道可能出了什么问题吗?

2 个答案:

答案 0 :(得分:0)

我记得有时候没有为编译器指定线程库会导致段错误。如果您使用的是unix,请尝试将-pthread参数添加到编译器中。似乎不再需要在最新的linux / boost / gcc上了。

答案 1 :(得分:0)

对象的地址仅在成员函数中作为this指针提供,this的大部分用法都是隐含的。

或者,您可以创建类的start()函数,friend,并直接将对象的引用发送到新线程。