C ++ - 线程执行失败

时间:2015-03-24 14:07:56

标签: c++ multithreading pthreads

我正在尝试运行一个函数,让调用线程在给定时间内进入休眠状态。但是当我运行它时,我得到错误libc++abi.dylib: terminating. Abort trap: 6

睡眠功能:

void process_for(int cycles) {
    sleep(cycles);
}

我将线程定义如下:

thread p1(process_for, 2000);

我也试过this_thread::sleep_for(chrono::milliseconds(1000)),但这给了我同样的错误。我可能做错了什么?

2 个答案:

答案 0 :(得分:1)

正如评论所说。 你必须加入主

中的主题

添加

p1.join();

最终看到: http://www.cplusplus.com/reference/thread/thread/join/

答案 1 :(得分:0)

该程序成功编译并运行

#include <thread>
#include <chrono>

void process_for(int cycles) 
{
    std::this_thread::sleep_for( std::chrono::milliseconds( cycles ) );
}

int main()
{
    std::thread p1( process_for, 2000 );

    p1.join();
}

好像你忘记了加入主题。