C++ Boost异步线程

C++ Boost异步线程,c++,boost,boost-thread,C++,Boost,Boost Thread,所以我一直在使用boost作为线程的解决方案。 我似乎遇到了一个问题,我创建的线程不让执行它们的主线程继续。 例如: intmain(){ 而(1){ 语音侦听;//创建语音对象 boost::threadspeech_thd(boost::bind(&speech::Run,&listen)); 语音连接(); std::cout不要在您刚刚创建的线程上调用join-join专门在主线程中等待,直到speech\u thd终止,请参见此处:线程是否会在不调用join()的情况下开始执行?另外,

所以我一直在使用boost作为线程的解决方案。 我似乎遇到了一个问题,我创建的线程不让执行它们的主线程继续。 例如:

intmain(){
而(1){
语音侦听;//创建语音对象
boost::threadspeech_thd(boost::bind(&speech::Run,&listen));
语音连接();

std::cout不要在您刚刚创建的线程上调用
join
-
join
专门在主线程中等待,直到
speech\u thd
终止,请参见此处:

线程是否会在不调用join()的情况下开始执行?另外,如果我按如下方式调用参数,这也会起作用:boost::thread(&listen::RecordMethod,this);?[注意,这是在对象listen本身内调用的。是的,线程在构造后立即开始。我不确定您的第二个问题-也许您应该问另一个问题。此代码正确吗?下一行的
语音侦听;
侦听
是同一个对象吗(这是打字错误吗?),还是它们是不同的对象?抱歉,这是一个大写字母问题。我只是用它来演示一下。
int main(){
    while(1){
        speech listen; //create speech object
        boost::thread speech_thd(boost::bind(&speech::Run,&listen));
        speech_thd.join();
        std::cout<<"test\n";
        //Some sleep call here 
    }