我读了一些代码如下:
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); }
在这里,将attrs设置为PTHREAD_CREATE_JOINABLE的用法是什么?此外,它不是pthead_create创建的线程的默认属性吗?
解决方法
是的,PTHREAD_CREATE_JOINABLE是默认属性.目的是它允许你在线程上调用
pthread_join
,这是一个等待线程完成的函数,并且如果它的主程序给你返回值.
有时候,当你创建一个线程来做一些后台工作时,在你使用它的结果或转移到其他东西之前确保它已经完成可能是个好主意.这就是可连接线程的用途.