linux pthread pthread_create pthread_join pthread_detach

linux 下面默认 pthread_create 由调用者自己负责子线程的资源回收

当父线程退出时候,子线程也会跟着退出,所以父线程推出的时候要调用pthread_join函数阻塞等待子线程的退出

pthread_detach( tid)  使线程tid 的线程处于分离状态,线程处于分离状态是该线程终止的时候资源被回收,不然的话该终止的子线程会占用系统资源直到父线程调用pthread_join

 

1 父线程先与子线程终止

  此时:

    如果子线程已近与父线程分离,如调用pthread_datach ,资源被回收

       如果没有分离,资源无法释放

1 子线程先与父线程终止

  此时:

    如果子线程调用了线程分离函数pthread_detach, 或父线程调用了pthread_join ,资源被释放

     如果上面两个都没有调用,资源无法释放

 

posted @ 2014-10-10 17:45  songbingyu  阅读(474)  评论(0编辑  收藏  举报