红联Linux门户
Linux帮助

linux 线程编程

发布时间:2010-04-07 22:49:36来源:红联作者:suowenair
谁给我一个pthread_detach函数使用的例子?谢谢!
文章评论

共有 4 条评论

  1. suowenair 于 2010-04-10 15:59:51发表:

    4# 0XFFFFH


    谢谢你!我就是要这样的例子!
    我把pthread_detach() 放在了pthread_create()创建的处理函数(新线程)里面里面了!我就是不明白为什么pthread_join()函数没有出错!
    呵呵!
    我看看这个程序!谢谢!

  2. 0XFFFFH 于 2010-04-08 18:55:44发表:

    分离一个已经创建的线程

    #include
    #include
    #include

    /*线程体函数*/
    void* tfn(void* arg)
    {
    printf("the thread\n");
    sleep(3);/*等待主线程将该线程设置为分离状态*/
    printf("the thread done\n");
    return NULL ;
    }

    int main()
    {
    int err ;
    pthread_t tid ;

    /*创建一个线程*/
    err = pthread_create(&tid,NULL,tfn,NULL);
    if(err != 0)
    {
    printf("can't create the thread %s \n",strerror(err));
    exit(1);
    }

    /*将线程属性设置为线程和结束状态信息分离*/
    err = pthread_detach(tid);
    if(err != 0)
    {
    printf("can't detach thread %s\n",strerror(err));
    exit(1);
    }

    /*由于状态分离,所以不能得到线程的结束状态信息,pthread_join函数将出错*/
    err = pthread_join(tid,NULL);
    if(err != 0)
    printf("thread has been detached\n");
    sleep(4);/*确保线程执行完毕*/
    printf("the main thread done\n");
    return 0 ;
    }

  3. 凌烟 于 2010-04-07 23:24:46发表:

    定了

  4. 凌烟 于 2010-04-07 23:24:01发表:

    赞一个