首页
学习
活动
专区
圈层
工具
发布

Linux之多线程(下)——线程控制

return pthread_exit pthread_cancel 5.分离线程——pthread_detach 线程是可以等待的,等待的时候是join的等待(阻塞式等待)。...pthread_detach函数 例子 创建新线程,让主线程与新线程运行起来,主线程等待新线程退出,等待完毕返回n。由于我们现在让新线程进行分离,那么按照理论此时主线程的等待结果是失败的。...start_routine(void* args) 14 { 15 string name = static_cast(args); 16 pthread_detach...因为,我们创建新线程后,并不确定新线程和主线程哪个先被调度,所以可能导致我们还没有执行新线程的pthread_detach时,主线程就去等待新线程了。...start_routine(void* args) 14 { 15 string name = static_cast(args); 16 pthread_detach

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux系统编程】(四十)线程控制终极指南:从资源共享到实战操控,带你吃透线程全生命周期

    6.2 线程分离函数:pthread_detach         通过pthread_detach函数可以将线程设置为分离状态,该函数可以由其他线程调用,也可以由线程自身调用。...函数原型: int pthread_detach(pthread_t thread); 参数thread:要设置为分离状态的线程的用户级 ID。 返回值:成功返回 0,失败返回非 0 错误码。...6.3 线程分离的两种方式 方式 1:线程自身调用 pthread_detach(推荐)         线程在启动后,主动调用pthread_detach(pthread_self()),将自己设置为分离状态...        主线程(或其他线程)在创建目标线程后,调用pthread_detach将其设置为分离状态。...; pthread_create(&tid, NULL, detached_thread_other, NULL); // 主线程将子线程设置为分离状态 int ret = pthread_detach

    35310

    创建线程:pthread_create

    并且thread指定的线程必须是joinable的 int pthread_detach(pthread_t tid); 调用pthread_join(pthread_id)后,如果该线程没有运行结束,...在有些情况下我们并不希望如此,比如在Web服务器中当主线程为每个新来的链接创建一个子线程进行处理的时候,主线程并不希望因为调用pthread_join而阻塞(因为还要继续处理之后到来的链接),这时可以在子线程中加入代码pthread_detach...(pthread_self())或者父线程调用pthread_detach(thread_id)(非阻塞,可立即返回) pthread_t pthread_self(void); 获得线程自身的ID。...这个属性也可以在线程创建并运行以后用pthread_detach()来设置,而一旦设置为PTHREAD_CREATE_DETACH状态(不论是创建时设置还是运行时设置)则不能再恢复到PTHREAD_CREATE_JOINABLE

    1.2K11
    领券