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/
我正在尝试 运行 一个可以让调用线程在给定时间内休眠的函数。但是当我 运行 时,我得到错误 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/