C++ - 线程执行失败

C++ - thread execution fails

我正在尝试 运行 一个可以让调用线程在给定时间内休眠的函数。但是当我 运行 时,我得到错误 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)) 但那给了我同样的错误。我可能做错了什么?

该程序编译运行成功

#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();
}

你好像忘记加入话题了

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

添加

p1.join();

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