linux中以结合模式分为joinable和detached两种, joinable可以由其他线程调用pthread_join函 数阻塞线程等待该线程处理结果. joinable线程退出后不会释放创建线程时使用的栈空间, 只有 调用pthread_join才会释放. detached线程退出后会自动释放.
使用属性 pthread_attr_t attr; pthread_attr_init (&attr); pthread_attr_setdetachstat(&attr, PTHREAD_CREATE_DETACHED); pthread_create (&thread, &attr, &thread_function, NULL);
使用pthread_detached()函数; pthread_detach(pthread_self()); // 线程中 pthread_detach(pid); // 主线程
pthread_cancel, 其他线程调用, 需要有取消点, 没有会报错; 线程需要设置取消处理方式
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);