c ++ pthread_t:我如何确保它已经启动?

时间:2017-12-06 21:45:33

标签: c++ pthreads

我还没有经常使用线程,但想知道如何确保线程已经启动(它将一直运行直到系统关闭,我只是在创建时使用默认属性)。

我已经用Google搜索了这一点,但对于没有终止,让thread_join等待它们的线程没有任何内容 - 我不需要或者想要等待它终止

pthread_attr_t attr = { 0 };
pthread_t TID = 0;
pthread_attr_init(&attr);
if (!pthread_create(&TID, &attrSys, &threadProcess, NULL))
    std::cout << "Error on thread create." << std::endl;

这足以保证线程实际上已经启动了吗?我查看了TID.joinable(我的编译器抱怨),尝试pthread_kill并查找错误(但由于线程ID在某些情况下不可靠而被打折)。

非常感谢。

1 个答案:

答案 0 :(得分:0)

这是pthread_create

的声明
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                          void *(*start_routine) (void *), void *arg);

pthread_create会返回<errno.h>代码:

成功时,pthread_create()在出错时返回0;,它会返回error        数字,*thread的内容未定义。