当前位置:  技术问答>linux和unix

Help.....

    来源: 互联网  发布时间:2014-10-20

    本文导语: 请问各位高手,pthread_join是如何工作的!|主要的线程处理函数之一,可以用man察看说明. 用man pthread_create应该可以看到pthread_create原型 int pthread_create (pthread_t *tid,const pthread attr_t *attr, void *(*start_routine)(void *), void *arg); int pt...

请问各位高手,pthread_join是如何工作的!
|
主要的线程处理函数之一,可以用man察看说明. 用man pthread_create应该可以看到pthread_create原型 int pthread_create (pthread_t *tid,const pthread attr_t *attr, void *(*start_routine)(void *), void *arg); int pthread_join (pthread_t thread , void **value_ptr); void pthread_exit (vodi *value_ptr); pthread_create:tid参数指向将创建的线程id。 线程的属性由attr所决定,一般用NULL来创建具有缺省属性的线程。 start_routine是线程开始时的执行函数,该函数具有一个参数arg 该函数的声明原型为void *start_route(void *arg) pthread_exit:将结束线程的执行。该函数有一个退出参数,和exit差不多。 不过这个参数必须为一个指针,因为当线程结束后,该退出状态将一直阻塞 直到其它线程的加入或该线程为进程的最后一个线程。所以不能作为正在退出 的线程的局部变量来分配。 pthread_join:与waitpid函数差不多,使调用线程的进程阻塞直到指定的线程结束。 与waitpid一样,该函数也用一个参数来接收线程的返回值。 下面用一个例子来说明: #include  #include  #include  #include  /* 线程开始时的处理函数 */ void *my_thread_deal(void *arg); int main() { int i; int j[10]={0,1,2,3,4,5,6,7,8,9}; pthread_t my_thread[10]; int *k; /* 创建十个线程 */ for(i=0;i

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3