增强线程列表

问题描述

| 我有类似下面的代码。下面的代码给出了SIGSEGV并指向list :: push_back。这是使用Boost线程列表的正确方法吗?
struct mythread{
   static void myfunc() {
      while(1){ }
   }
};

int f(){
   std::list<boost::thread *> pool;
   pool.push_back(new boost::thread(mythread::myfunc));
}
环境:Ubuntu上的gcc 4.4.5,与libboost_thread.a和-lpthread链接。我没有使用c ++ 0x标志。 问候, 丘布斯达德 注意2:我也获得了SIGSEGV的代码
pool.push_back(new boost::thread(NULL);
    

解决方法

        尝试获取函数指针的地址:
pool.push_back(new boost::thread(&mythread::myfunc));