pthread中PTHREAD_CREATE_JOINABLE的用法是什么?

inj*_*joy 7 c pthreads

我读了一些代码如下:

void
mcachefs_file_start_thread()
{
  pthread_attr_t attrs;
  pthread_attr_init(&attrs);
  pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_JOINABLE);
  pthread_create(&mcachefs_file_threadid, &attrs, mcachefs_file_thread, NULL);
}
Run Code Online (Sandbox Code Playgroud)

在这里,设置的用法attrsPTHREAD_CREATE_JOINABLE什么?此外,它不是由pthead_create?创建的线程的默认属性?

che*_*che 11

是的,PTHREAD_CREATE_JOINABLE是默认属性.目的是它允许你调用pthread_join线程,这是一个等待线程完成的函数,并且如果它的主程序给你返回值.

有时候,当你创建一个线程来完成一些后台工作时,在你使用它的结果或转移到其他东西之前确保它已经完成可能是个好主意.这就是可连接线程的用途.