我不能在一个单独的线程中创建一个函数

时间:2015-02-15 16:36:20

标签: c++

示例代码:

void check()
{
    sleep(15);
}

int main(int argc, char **argv)
{
    std::thread t(check);
    t.join();

    //......

    return 0;
}

程序在醒来之前不会继续运行......

2 个答案:

答案 0 :(得分:0)

t.join();

这将等待以完成线程。删除该行。

答案 1 :(得分:0)

join表示“等待线程完成,然后将其清理干净”。

如果您还不想等待线程,请不要再调用join。做其他事情,然后在需要完成任务时加入线程。或者调用detach,让线程在后台运行;虽然在这种情况下,当main完成时,它将与程序的其余部分一起结束。